如何生成 64 位 COM 代理
我有一个 32 位 COM 服务器(及其源代码) 源生成服务器和 32 位代理存根。 (MIDL 编译器生成代理存根代码。)
我也想制作一个 64 位代理,以便 64 位程序可以与我的 32 位 COM 服务器通信。
如何将 32 位代理转换为与 32 位进程通信的 64 位代理? 我猜想仅仅使用 /D:_M_AMD64 重新编译是不够的。
I have a 32 bit COM server (and the source code for it)
The source generates the server and a 32 bit proxy stub. (The MIDL compiler generates the proxy stub code.)
I would like to make a 64 bit proxy as well, so that 64 bit programs can talk to my 32 bit COM server.
How do I go about converting a 32 bit proxy into a 64 bit proxy that talks to a 32 bit process?
I'm guessing that just recompiling with /D:_M_AMD64 is not enough.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
MIDL 编译器生成的代理代码应该可以工作。您只需从该代码构建 64 位 dll 即可。
确保您的类型定义正确。确保避免使用 UINT_PTR 等类型,当 64 位调用者调用 32 位服务器时,此类类型将不起作用。
The proxy code generated by the MIDL compiler should work. You just need to build a 64-bit dll from that code.
Make sure your types are defined properly. Make sure you avoid types like UINT_PTR which will not work when a 64-bit caller calls a 32-bit server.