Visual studio 2008 我们可以使用;“促进”;我们自己的图书馆在CLR下编译?
因此,创建win32项目并使用boost很容易。我还没有试过,但我打算试一下。我想知道我是否可以在CLR模式下使用boost。可能吗?有人试过吗?是的,应该没问题。很少有原生C++构造不能翻译成IL。Varargs曾经是个问题,但问题解决了,我只知道fastcall是不可翻译的。不会有问题的,Boost不会使用它。我唯一知道的另一个问题是有很多全局变量。它们需要嵌入到CLR类中,类的字段不能超过65535个。当CLR加载程序尝试加载程序集时,将出现异常。你需要一些漂亮的,呃,特殊的代码来接近这个限制 第二个考虑因素是这样做是否有实际意义。首先,使用本机代码的目的是利用代码优化器在优化代码时所花费的时间。如果将代码翻译成IL,那么JIT优化器就没有同样的优势了Visual studio 2008 我们可以使用;“促进”;我们自己的图书馆在CLR下编译?,visual-studio-2008,visual-c++,boost,clr,Visual Studio 2008,Visual C++,Boost,Clr,因此,创建win32项目并使用boost很容易。我还没有试过,但我打算试一下。我想知道我是否可以在CLR模式下使用boost。可能吗?有人试过吗?是的,应该没问题。很少有原生C++构造不能翻译成IL。Varargs曾经是个问题,但问题解决了,我只知道fastcall是不可翻译的。不会有问题的,Boost不会使用它。我唯一知道的另一个问题是有很多全局变量。它们需要嵌入到CLR类中,类的字段不能超过65535个。当CLR加载程序尝试加载程序集时,将出现异常。你需要一些漂亮的,呃,特殊的代码来接近这个
使用C++互操作,它可以从托管值类型转换为本机类型,而不必编写任何胶粘代码。只需在飞行中关闭IL生成。像这样:
#pragma managed(push, off)
// Native code goes here
//...
#pragma managed(pop)
// Managed code goes here