没有代理/存根DLL的未经加工com服务器



我正在学习如何实现未经处理的com服务器,并遇到此代码项目文章,构建本地com服务器和客户端:逐步示例。

我可以构建它,并且运行良好,但是代理/存根DLL在哪里?我所能看到的是在构建过程中生成代理/存根代码的IDL文件。但是DLL是如何构建的,它在哪里?

简短的答案是所有接口都标记为" oleautomation",因此Oleaut32.dll执行了编组,因为COM知道如何在接口中使用所有类型。

如果丢失了" oleAutomation",或者指定了com不知道如何违约元帅的类型(请参阅此处的列表),则需要您的非默认元帅及其存根。

您需要代理/存根项目来帮助您的接口。当您使用Visual Studio创建ATL C 项目时,您通常会有一个辅助项目,并自动创建PS后缀,这是您的代理/存根DLL。但是,如果没有它,您可能会做得很好(即使我确实必须处理诸如自定义套装之类的事情,我个人从来都不需要构建和使用它)。如果您在项目中提供类型库,则已注册并满足某些条件 - com将为您提供自动代理/存根对。

奖金阅读:

  • com proxy/stub dll,为什么需要它
  • 当需要代理/存根对

最新更新