我使用/ CLR开关(“gloox”,一个XMPP库)编译了一个本机C ++项目。构建成功,我可以从C#项目引用它(即它显示在References文件夹中)。 C ++项目在命名空间'gloox'下公开了一些类。
我还可以在对象浏览器中看到gloox {}命名空间以及所有导出的类。
问题是,从C#项目中我无法“看到”gloox命名空间(即'使用gloox'不能编译)。
由于
答案 0 :(得分:2)
C ++项目是否公开任何托管类型(ref class
或value class
或enum class
)? /CLR
选项不会奇怪地使托管代码可以使用类型,您需要托管元数据,该托管元数据仅适用于托管类型,并且需要公开类型才能从其他程序集中使用。
(为了完全准确,C ++ / CLI编译器有时会为本机类创建元数据,尤其是在/clr:pure
模式下,但是将它们标记为内部,因此您不能在其他语言中使用它们本机C ++规则。)