1
因此很容易创建一个win 32项目并使用boost。我还没有尝试过,但我打算。我想知道如果我可以在CLR模式下使用boost。可能吗?有没有人试过?我们可以在CLR编译的自己的图书馆中使用“Boost”图书馆吗?
因此很容易创建一个win 32项目并使用boost。我还没有尝试过,但我打算。我想知道如果我可以在CLR模式下使用boost。可能吗?有没有人试过?我们可以在CLR编译的自己的图书馆中使用“Boost”图书馆吗?
是的,这不应该是一个问题。有很少的本地C++构造不能被翻译成IL。可口可乐曾经是一个问题,但已经解决了,我只知道__fastcall是不可翻译的。不会是一个问题,Boost不会使用它。我知道的唯一的其他问题是有很多全局变量。他们需要嵌入到CLR类中,并且类不能超过65535个字段。 CLR加载程序尝试加载程序集时会发生异常。你需要一些漂亮的,特殊的代码才能接近这个限制。
第二个考虑因素是它是否真的有意义。首先使用本机代码的目的是利用代码优化器可以优化它的时间。您通过将代码转换为IL来抛弃它,JIT优化器没有相同的奢侈品。
利用C++ Interop,它可以从托管值类型转换为本地类型,而无需编写任何胶水代码。即时关闭IL一代。像这样:
#pragma managed(push, off)
// Native code goes here
//...
#pragma managed(pop)
// Managed code goes here