如何生成 64 位 COM 代理

发布于 2024-10-14 16:12:42 字数 194 浏览 3 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦过后 2024-10-21 16:12:42

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文