【C#】我得到“ 32位進(jìn)程無法訪問64位進(jìn)程的模塊”。異常調(diào)用Process.Start()
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
:【C#】我得到“ 32位進(jìn)程無法訪問64位進(jìn)程的模塊”。異常調(diào)用Process.Start()
當(dāng)我到達(dá)代碼:Process.GetProcessById,我得到這個錯誤: A 32 bit processes cannot access modules of a 64 bit process. 問題描述這是代碼示例: var startInfo = new ProcessStartInfo{ Arguments = commandStr, FileName = @"C:\Windows\SysWOW64\logman.exe", };using (var createCounterProc = new Process { StartInfo = startInfo }) { createCounterProc.Start(); createCounterProc.WaitForExit(); } 運(yùn)行代碼后,我得到 32位進(jìn)程無法訪問64位進(jìn)程的模塊。 MainModule中的錯誤消息(NativeErrorCode:299)。我的解決方案配置為AnyCPU。我已經(jīng)嘗試過64位和32位版本的logman.exe(C:\Windows\SysWOW64\logman.exe和C:\Windows\System32\logman.exe),但是我仍然遇到相同的錯誤。我的操作系統(tǒng)是Win8.1Prox64??赡芤饐栴}的原因? 堆棧跟蹤: at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId, Boolean firstModuleOnly) at System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId) at System.Diagnostics.Process.get_MainModule() 這是構(gòu)建配置。 推薦答案選擇用于平臺目標(biāo)的任何CPU 是不夠的,您還必須取消選中首選32位,否則該應(yīng)用程序仍將以32位運(yùn)行。將目標(biāo)平臺設(shè)置為“x64”即可: 這僅適用于應(yīng)用程序項(xiàng)目,不適用于庫項(xiàng)目。如果您的項(xiàng)目是一個庫,則必須在您的項(xiàng)目中使用您的庫。 該文章在 2024/2/8 17:29:21 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |