3
我正在创建一个CLI项目以环绕现有的本地C++项目(同一解决方案文件中的两个独立项目)。我想包含一个指向本地类的指针,作为托管类中的成员。从我在线阅读的文档中可以看出,如果托管代码和非托管代码都在同一个项目中,就可以完成此操作。如果本机代码和托管代码位于不同的项目中,则唯一的选择是在两个项目之间使用dllimport和dllexport属性,并将本机代码类功能作为静态函数导出。将本地C++类导入CLI项目
这些是我唯一的选择,还是我可以在两个单独的项目之间导入和导出整个本机类?我问,因为这决定了我如何设计我的托管包装。提前致谢。
如果本地项目设置为构建静态.lib而不是DLL,它也会有所帮助。否则,您可能会很容易遇到问题,如从一个CRT堆分配并尝试释放另一个CRT堆。有时候,值得激活“链接库源”选项,因为链接到静态库不会在不需要的对象中运行全局构造函数。 “它工作正常(如果你很小心”,但比p/invoke要容易得多) – 2011-03-28 23:08:30
这很好,我的本地代码是一个dll而不是静态库 – John 2011-03-29 14:05:18
你可以让VS让你成为一个“便利库“,你可以链接到调用项目 – 2011-03-29 14:06:27