1

我在一个项目中遇到了一些问题。我需要使用两个库,但一个需要用/clr开关编译,因为另一个不能用这个开关编译。

有没有办法在一个项目中同时使用这两个库?目前它是用它编译的/clr,我得到了与noclr库的链接错误。

如果没有解决方案,我仍然可以noclr在批处理模式下启动库,但我想避免它......

我的项目在托管 C++ 中,库tetgen - 需要 /clr - 在本机C++ 中,如果没有 /clr 开关就无法编译,因为我收到了这个错误

错误 C3381:“tetgenio”:程序集访问说明符仅在使用 /clr 选项编译的代码中可用

另一个库三角形在 C 中。我在 Visual Studio 2008 上,该项目以 32 位编译。

4

2 回答 2

2

我们可以使用更多细节,但是使用托管 C++,您当然可以混合使用托管和非托管代码。(Microsoft 将他们的托管 c++ 代码称为 C++/CLI。)

编辑:

好的,您的编译器错误有所帮助。显然,您已经指定了一个本地类,但在本地类的名​​称上使用了公共私有或其他访问说明符。来自 MSDN 文档:

以下示例生成 C3381:

// C3381.cpp
**public** class A {   // C3381. Remove public or make the class
managed. }; 
int main() { }

所以去掉 public 关键字,然后再次尝试编译。

于 2010-10-21T17:43:12.223 回答
0

您可以在一个解决方案中拥有多个项目。右键单击 eolution explorer 中的解决方案并添加 -> 现有/新项目。每个库项目都可以通过这种方式添加并拥有自己的 clr 设置。

于 2010-10-21T17:44:13.597 回答