如何在c / c ++中使用某些特定的dll?

时间:2010-04-27 14:51:38

标签: c++ c dll cmake

msvcr70/msvcr80/msvcr90.dll一样,代码是什么代码指示链接器动态链接到其中一个?

或者与c/c++有关,但是cmake

4 个答案:

答案 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)

嗯,当然你想先了解DLL /链接...... http://www.infernodevelopment.com/how-create-dll-c-using-run-time-dynamic-linking

所写的问题无法回答

注意:不确定您对Cmake的意思,但您可以在CMakeLists.txt文件中轻松指定链接库...例外情况是您注意到的DLL,因为它们与平台有关。您需要在CMake脚本中检查MSVC的版本。

为什么你想要链接到较旧的运行时间,Vista继续使用VC9运行时,如果有人使用XP,你可以给他们VS2008 / 2010的'可再发行包'...