我已经在网上找到了想法,但想要确定一下。
我将原生c ++包装器转换为c ++ / CLI项目,以便被VB.NET“看到”
我转换的项目依赖于fortran静态库。
在Debug配置中,我的C ++ / CLI项目使用多线程调试DLL(/ MDd),而我的fortran静态库使用Debug Multithread DLL(/ libs:dll / threads / dbglibs)。我可以编译好。
在发布配置中,我遇到了一些问题。我的C ++ / CLI项目使用多线程DLL(/ MD),我的fortran静态库使用多线程DLL。这导致一堆未解决的令牌(如unresolved token "extern "C" void __cdecl __CxxUnregisterExceptionObject(void *,int)"
)
如果我更改fortran静态库以使用Debug Multithread DLL,它可以正常工作。
我的问题:使用Fortran静态库在Release配置中使用Debug Multithread DLL是不是很糟糕?我认为调试开关只应该在Debug配置中使用,但我不知道如何摆脱错误...
答案 0 :(得分:0)
我已经能够解决这个问题了。
静态库最初在Release配置中配置为Multithreaded,因此我将其更改为。我的C ++ / CLI项目也有一个/nodefaultlib:msvcrt.lib开关,所以我删除了它并编译