首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Windows运行时模板库(WRL)的进程外经典COM EXE

使用Windows运行时模板库(WRL)的进程外经典COM EXE
EN

Stack Overflow用户
提问于 2013-10-08 06:49:46
回答 1查看 1.1K关注 0票数 6

我遵循这里的示例:http://msdn.microsoft.com/en-us/library/vstudio/jj822931.aspx使用(WRL)创建In经典COM DLL。我还可以修改为代码运行DLL作为COM代理(包装在DllHost.exe内)。

但是,我无法找到使用WRL创建进程外COM EXE的方法。这里有一个使用barebone的简单例子:http://www.codeproject.com/Articles/3173/A-simple-yet-debuggable-COM-skeleton-code,但是我想知道如何利用WRL来简化它。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-06-07 22:47:28

是的是可能的。我刚得到一份工作。以下是与实现in coclass相比所需的基本知识。

  • 使用WRL::RuntimeClass实现您的coclass,就像对in类一样。(https://msdn.microsoft.com/en-us/library/jj822931.aspx)
  • 在您的主要函数中,使用WRL::and::create ()创建一个模块对象,并在启动时调用module.RegisterObjects(),在关闭时调用module.UnregisterObjects()和module.Terminate()。
  • 您需要构建一个DLL来承载代理:https://msdn.microsoft.com/en-us/library/windows/desktop/ms688707(v=vs.85).aspx
  • 静态注册:请注册代理存根的接口和CLSID。不要静态注册您的coclass。
  • 在客户机中,当您调用CoCreateInstance时,请确保使用适当的CLSCTX。(当宿主模型对客户端不重要时,我使用CLSCTX_ALL。)

(我知道这已经快4年了,但本周我也有同样的问题。)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19240953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档