过去,我们在Visual Studio 6.0应用程序中使用Visual Studio 2005创建的DLL库遇到了一些问题(当然,VS2005 DLL是C ++非托管的)。在您看来,如果库是静态的(* .lib)而不是动态的,我们会遇到同样的问题吗?
答案 0 :(得分:1)
似乎问题区域是运行时库 - 如果VS2005 DLL使用运行时库的DLL版本,那么在安装应用程序时需要安装两组运行时。如果您的VS2005 DLL静态链接到VS2005运行时,则应该没问题。
答案 1 :(得分:1)
Microsoft建议必须使用与主应用程序相同的CRT / STL编译非托管DLL。主应用程序和DLL应该使用与CRT的动态链接。
如果DLL实现了纯C接口或COM接口,那么应该可以使用来自其他版本的Visual Studio的DLL。但是如果DLL不使用CRT的静态链接,那么它将要求CRT-dll可用。
答案 2 :(得分:0)
这当然取决于什么样的问题。有些冲突更可能发生在DLL中,而某些冲突更可能发生在静态库中。如果您使用相同版本的Microsoft SDK进行构建,则可以最大限度地减少问题。