Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 32 位 COM 服务器(及其源代码) 源代码生成服务器和一个 32 位代理存根。(MIDL 编译器生成代理存根代码。)
我也想做一个 64 位代理,以便 64 位程序可以与我的 32 位 COM 服务器通信。
如何将 32 位代理转换为与 32 位进程对话的 64 位代理?我猜只是用 /D:_M_AMD64 重新编译是不够的。
MIDL 编译器生成的代理代码应该可以工作。您只需要从该代码构建一个 64 位 dll。
确保您的类型定义正确。确保避免使用 UINT_PTR 之类的类型,当 64 位调用者调用 32 位服务器时,这些类型将不起作用。