(1)注意版本对应
手上有osg-3.0.0的编译库,使用VS2017进行封装时,dll可以正常生成,但是调用时提示内存错误。
改用vs2008重新生成,调用成功!
osg80之类的dll是由vs2008编译生成的,所以应该还是使用vs2008封装dll
(2)c++/cli应用程序调用上述dll,报错“混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集”
解决办法:
1)c++/cli生成app.config配置文件,然后在配置文件中添加如下代码:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/> <supportedRuntime version="v2.0.50727"/> </startup> </configuration>
2)
项目属性->生成事件(Build Events),三个事件点,随便添到那个步骤中:命令行:copy app.config "$(TargetPath).config"
已有 3169 位网友参与,快来吐槽:
发表评论