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

用C++插件扩展C++应用程序

  •  1
  • kshahar  · 技术社区  · 17 年前

    对于这种插件系统,你推荐使用什么(主机是C++,C语言中的插件)?为了实现这一目标,我需要学习什么?

    4 回复  |  直到 17 年前
        1
  •  3
  •   Community Mohan Dere    9 年前
        2
  •  3
  •   Carl    17 年前

    使用COM对象和接口公开您的API,您将向许多开发环境(包括C#)开放您的应用程序。

        3
  •  2
  •   Tim Jarvis    17 年前

    实际上,还有COM的建议。如果您真的想添加一流的.NET插件支持,那么可以托管您自己的CLR进程。这里有一篇非常有趣的文章。

    http://msdn.microsoft.com/en-us/magazine/cc163567.aspx

        4
  •  1
  •   Daniel Paull    17 年前

    过去我用各种方式做过这件事。我发现C++ + CLI是构建.NET和非托管C++之间的桥梁的最佳选择(尽管其他海报也提到了COM)。

    我过去的做法包括:

    1. 手工编写的C++/CLI API包装器。如果API不是很大,那么手工编写包装器就足够容易了。

    托管CLR并不困难,尽管我只做过一次,那是几年前的事了——也许时代已经改变了。如果您不习惯托管CLR,那么请将尽可能多的应用程序代码推送到DLL中,然后编写一个小型C++/CLI应用程序,以打开非托管UI。现在CLR由小型C++/CLI应用程序托管。