gpt4 book ai didi

c# - 我在调用 Process.Start() 时收到 'A 32 bit processes cannot access modules of a 64 bit process.' 异常

转载 作者:行者123 更新时间:2023-12-01 18:32:44 39 4
gpt4 key购买 nike

这是代码示例

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()

这是构建配置:

build settings dialog

最佳答案

平台目标选择任何CPU是不够的,您还必须取消选中首选32位,否则应用程序仍然会作为 32 位应用程序运行。

这仅适用于应用程序项目,不适用于库项目。如果您的项目是一个库,则必须在使用您的库的项目中执行此操作。

关于c# - 我在调用 Process.Start() 时收到 'A 32 bit processes cannot access modules of a 64 bit process.' 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34070969/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com