W2K8中的Windows系统调用问题

我有一个在psapi.dll中定义的Windows系统函数“EnumProcessModules()”的问题。 在我们的组件中,我们使用这个函数来检索指定进程中的模块。 只要我们在32位操作系统上运行这个程序,这个函数就能正常工作。 但是,当我们在64位操作系统(例如W2K8 R2)上运行程序时,此function失败。 大家都知道,我们在W2K8 R2上瞄准了Clay和Brick。 这是一个已知的问题,根据MSDN中的以下讨论。 有一个解决方法是在该线程中build议将代码编译为64位。 对我们来说这不是一个select,至less现在还不行。 你有什么build议吗? 任何指针/build议/想法将不胜感激。

http://social.msdn.microsoft.com/forums/en-US/winserver2008appcompatabilityandcertification/thread/c7d7e3fe-f8e5-49c3-a16f-8e3dec5e8cf8/

如果您的现有代码必须继续编译为32位,则可能会创建一个小型64位可执行文件,该可执行文件通过EnumProcessmoduleesEx枚举这些进程。 32位进程可以在必要时产生64位进程来完成这项工作。 然后使用某种IPC将信息传回32位进程。 根据需要,这个部分可能会像将文件写入磁盘并从第一个进程(或管道,共享内存,套接字等)中读取它一样低技术。