引用 C++ 时出现问题/clr 来自 C# 的项目

发布于 2024-09-08 11:08:56 字数 236 浏览 3 评论 0原文

我使用 /CLR 开关(“gloox”,一个 XMPP 库)编译了一个本机 C++ 项目。构建成功,我可以从 C# 项目引用它(即它显示在 References 文件夹中)。 C++ 项目在命名空间“gloox”下公开了一些类。

我还可以在对象浏览器中看到 gloox {} 命名空间以及所有导出的类。

问题是,从 C# 项目中我无法“看到”gloox 命名空间(即“using gloox”无法编译)。

谢谢

I have compiled a native C++ project using the /CLR switch ("gloox", an XMPP library). The build succeeded and I'm able to reference it from a C# project (ie it shows up in the References folder). The C++ project exposes some classes under the namespace 'gloox'.

I can also see the gloox {} namespace in the object browser, along with all the exported classes.

The problem is that from the C# project I can't 'see' the gloox namespace (ie 'using gloox' does not compile).

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北城半夏 2024-09-15 11:08:56

C++ 项目是否公开任何托管类型(ref classvalue classenum class)? /CLR 选项不会神奇地使类型可用于托管代码,您需要仅可用于托管类型的托管元数据,并且类型需要公开才能从其他程序集中使用。

(为了完全准确,C++/CLI 编译器有时会为本机类创建元数据,特别是在 /clr:pure 模式下,但会将这些标记为内部类,因此您无法从其他语言中使用它们不理解本机 C++ 规则。)

Does the C++ project expose any managed types (ref class or value class or enum class)? The /CLR option doesn't magically make types available to managed code, you need the managed metadata which is only available for managed types, and the types need to be public to be used from other assemblies.

(To be totally accurate, the C++/CLI compiler sometimes creates metadata for native classes, especially in /clr:pure mode, but marks these as internal so you can't use them from other languages which don't understand the native C++ rules.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文