代码之家  ›  专栏  ›  技术社区  ›  user142350

如何将C引用引用到COM对象到C++ DLL

  •  2
  • user142350  · 技术社区  · 15 年前

    我正在编写VisualStudio插件,以处理C++代码,并认为COM互操作速度降低了很多。因此,我想将一个C引用引用到一个COM对象到一个小的C++ DLL,让DLL执行必要的计算并返回一个字符串。

    CodeFunction2 对象,并获取包含方法信息的XML字符串。

    虽然您可以质疑我是否真的需要它来提高性能,但如果您为数千个方法调用COM互操作中的十几个成员变量,那么在托管代码和非托管代码之间进行更改似乎占用了太多时间。

    如何将参数格式化为C++ DLL?一般来说,我没有从托管代码调用非托管代码的经验,但我需要回答的主要问题是如何格式化调用。

    3 回复  |  直到 15 年前
        1
  •  2
  •   John Fisher    15 年前

    也许你应该写一个托管C++ DLL(使用/CLR开关),然后你可以直接把管理对象传递到C++ DLL中,并做你喜欢的任何COM魔术,而不用担心在DLL之间传递它们。

        2
  •  1
  •   ScottTx    15 年前

    如果你真的认为C/com互操作正在减缓你的速度,为什么不在C++中写VS Advin呢?这样就避免了必须从C的Advin DLL传递到C++ DLL来处理COM互操作——在同一个地方做。

        3
  •  1
  •   Tamás Szelei    15 年前

    __gc 和丑陋的东西)。

    Here 这是一个很好的关于互操作场景的教程。