我该如何解决这个问题?代码工作正常,因为我在32位计算机上测试它,但我的64位计算机返回错误与getlasterror();
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
部分信息:
当我在Win2000上使用CreateRemoteThread
时,一切正常,除了我在属于不同终端服务器会话的进程中启动远程线程的情况。在Win2003(及以上)上,所有系统进程都在TS会话0中工作,这与您当前登录的交互式会话不同。那时我还没有设法解决TS会话边界问题。这是您可能需要先检查的内容。
这可能不是32/64位问题,而是某种需要特殊权限和/或权限的安全问题。
答案 1 :(得分:0)
我猜你的目标进程是一个托管可执行文件,编译为“任何CPU”......
如果是这样,当您在64位Windows上启动该exe时,它将JIT编译为64位代码,从而成为64位进程。
然后,您不能从32位进程调用CreateRemoteThread。
在32位Windows上启动的相同Managed exe将JIT转换为32位代码,因此可以正常工作。
如果是这种情况,并且您是相关Managed exe的作者,请将其重建为x86。