与msvcr70/msvcr80/msvcr90.dll
一样,代码是什么代码指示链接器动态链接到其中一个?
或者与c/c++
有关,但是cmake
?
答案 0 :(得分:1)
您提供的具体示例恰好是通常通过清单和并排链接的DLL,至少在从Visual Studio构建应用程序(具有正确的项目设置)时。你为什么试图指示编译器通过代码链接它们?
最常用的链接到特定DLL的方法是当你有DLL的lib可用,然后使用pragma
#pragma comment(lib, "<library name>")
答案 1 :(得分:1)
链接时指定.lib文件,匹配的.dll将在运行时使用,因此(例如)如果要使用msvcr70.dll,则需要与msvcr70.lib链接。
答案 2 :(得分:1)
通常,您链接的C / C ++运行时依赖于您正在使用的VisualStudio版本。 (msvcr80.dll - &gt; VS2005,msvcr90.dll - &gt; VS2008等。)
有关如何运作的更深入的见解以及使用这些技巧的一些技巧,您可以在此blog post中阅读。
答案 3 :(得分:0)
所写的问题无法回答
注意:不确定您对Cmake的意思,但您可以在CMakeLists.txt文件中轻松指定链接库...例外情况是您注意到的DLL,因为它们与平台有关。您需要在CMake脚本中检查MSVC的版本。
为什么你想要链接到较旧的运行时间,Vista继续使用VC9运行时,如果有人使用XP,你可以给他们VS2008 / 2010的'可再发行包'...