为什么我使用AnyCPU编译的应用程序在我的 64 位计算机上作为 32 位进程运行,因此无法与作为 64 位进程运行的记事本交互?
我有以下代码不会在 x64 操作系统上运行,因为notepad.exe
它是 x64 并且 x86 应用程序无法获取 x64 进程的模块信息:
prc.Modules[0].FileName
.Net 异常抛出我的代码:
System.ComponentModel.Win32Exception (0x80004005):32 位进程无法访问 64 位进程的模块。
根据这个论坛上的许多答案和文章,MSDN,...,我知道我需要使用 AnyCPU,因为使用 x64 对我没有特别的好处。即使在 AnyCPU 配置上编译时,我的错误仍然存在,此外,在任务管理器(32-bit)
中,我在进程名称的末尾看到一个。
(实际上,我通过检查性能测试了代码,x64 代码运行速度快了约 40 毫秒。没关系,我不希望我的代码运行速度快 40 毫秒:D)
我不知道这是错的。
VS 2011 测试版 (x64)
Windows 8 消费者预览版 (x64)
此致,佩曼·莫尔塔扎维