c ++托管和非托管静态库

时间:2011-05-23 14:09:58

标签: .net c++ unmanaged managed regasm

我有一些带有简单代码的托管C ++程序集。

此程序集具有混合(托管/非托管)代码。如果我将非托管代码放入单独的非托管静态库并将其与托管代码链接,那么我会收到如下注册错误: “无法加载'xxxxxx.dll',因为它不是有效的.NET程序集” 。

如果我将所有代码放在一个项目中并将它们组合在一起,那么一切都可以正常工作。我在VS2008 + .NET3.5 + RegAsm .Net2.0上尝试过它。我的集会签了名。

我想为非托管静态库和托管程序集保存代码分离。

我需要做什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

必须构建您的lib以动态使用C ++运行时(从.NET 2.0开始)。

在项目属性中,打开C / C ++,然后转到代码生成。查找运行时库,并设置为发布的多线程DLL,以及用于调试的多线程调试DLL。