将本机c ++类导入CLI项目

时间:2011-03-28 22:27:33

标签: visual-c++ c++-cli wrapper managed mixed-mode

我正在创建一个CLI项目来包装现有的本机c ++项目(同一个解决方案文件中的两个独立项目)。我想在托管类中包含一个指向本机类的指针作为成员。从我在线阅读的文档中,如果托管代码和非托管代码在同一个项目中,则可以完成此操作。如果本机代码和托管代码在单独的项目中,那么唯一的选择是在两个项目之间使用dllimport和dllexport属性,并将本机代码类函数导出为静态函数。

这些是我唯一的选择,还是可以在两个单独的项目之间导入和导出整个本机类?我问,因为这决定了我如何设计我的托管包装器。提前谢谢。

1 个答案:

答案 0 :(得分:5)

“指针”这个词让我愣了一下。你的意思是你想在没有P / Invoke的情况下使用C ++ / CLI代码中的一些本机代码?当然。只需包含标题,链接到lib。如果他们都是本地人,你究竟会怎么做。这些天它被称为C ++ Interop - 我更喜欢旧名称(It Just Works Interop)。

您当然可以在任何地方添加标头,并从任何地方添加链接器输入,因此它们在技术上不必位于相同的.sln中,但Visual Studio将使您的生活更轻松。