3

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

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

4

1 回答 1

5

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

当然,您可以从任何地方包含一个标头,并从任何地方添加一个链接器输入,因此从技术上讲,它们不必在同一个 .sln 中,但如果它们是,Visual Studio 会让您的生活更轻松一些。

于 2011-03-28T22:36:12.253 回答