【C#】我得到“ 32位進程無法訪問64位進程的模塊”。異常調用Process.Start()
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
:【C#】我得到“ 32位進程無法訪問64位進程的模塊”。異常調用Process.Start()
當我到達代碼: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(); } 運行代碼后,我得到 32位進程無法訪問64位進程的模塊。 MainModule中的錯誤消息(NativeErrorCode:299)。我的解決方案配置為AnyCPU。我已經嘗試過64位和32位版本的logman.exe(C:\Windows\SysWOW64\logman.exe和C:\Windows\System32\logman.exe),但是我仍然遇到相同的錯誤。我的操作系統是Win8.1Prox64。可能引起問題的原因? 堆棧跟蹤: at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId, Boolean firstModuleOnly) at System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId) at System.Diagnostics.Process.get_MainModule() 這是構建配置。 推薦答案選擇用于平臺目標的任何CPU 是不夠的,您還必須取消選中首選32位,否則該應用程序仍將以32位運行。將目標平臺設置為“x64”即可: 這僅適用于應用程序項目,不適用于庫項目。如果您的項目是一個庫,則必須在您的項目中使用您的庫。 該文章在 2024/2/8 17:29:21 編輯過 |
關鍵字查詢
相關文章
正在查詢... |