0

我该如何解决这个问题?代码运行良好,因为我在 32 位计算机上对其进行了测试,但我的 64 位计算机使用 getlasterror() 返回了该错误;

我能做些什么来解决这个问题?

4

2 回答 2

0

部分信息:

当我CreateRemoteThread在 Win2000 上工作时,一切正常,除了我在属于不同终端服务器会话的进程中启动远程线程的情况。在 Win2003(及更高版本)上,所有系统进程都在与您当前登录的交互式会话不同的 TS 会话 0 中工作。当时我还没有设法解决 TS 会话边界问题。这是您可能需要首先检查的内容。

这更有可能不是 32/64 位问题,而是某种需要特殊特权和/或权限的安全问题。

于 2012-09-04T06:10:00.193 回答
0

我猜你的目标进程是一个托管可执行文件,为“任何 CPU”编译......

如果是这样,当您在 64 位 Windows 上启动该 exe 时,它​​将 JIT 编译为 64 位代码,从而成为一个 64 位进程。

然后,您不能从 32 位进程对其调用 CreateRemoteThread。

在 32 位 Windows 上启动的相同托管 exe 将 JIT 到 32 位代码,因此可以工作。

如果是这种情况,并且您是相关托管 exe 的作者,请为 x86 重建它。

于 2012-09-13T15:14:42.723 回答