更新时间:2016-01-16 16:43:59浏览次数:1+次
VS编译器有两个版本,调试版本和发布版本,我们看看这些版本各自对应的DLL:
为了使编译好的程序可以顺利运行,使用运行库的程序在运行时必须找到库中的函数。实现这一目的有两种方法,一种是静态链接,另一种是动态链接。简单来说,静态链接就是将程序所使用的支持库中的函数复制到程序文件中。这样一来,这些支持库函数的实现就位于程序模块中,成为本模块的代码。动态链接就是利用动态链接库技术,在程序运行时在动态的加载包含支持函数的动态链接库,并更新程序的IAT表,是程序可以顺利的调用DLL中的支持函数。
当运行一个程序时,如果操作系统的加载器找不到他所依赖的模块,就会显示一个消息框,我想大家应该都遇到过。我们可以用过编译器选项来设置链接支持库的方式。/MT开关代表静态链接,/MD代表动态链接。如果是使用调试版本的支持库,则在后面加一个小写的d,即/MTd或/MDd。VS08之后不再支持单线程的支持库和选项。我们在VS的项目属性-》C/C++编译器-》代码生成里面就能找到对应的选项设置了。
无论是静态链接还是动态链接,都离不开lib文件。VC编译器的lib目录包含了链接器所需的各种lib文件。