>标准库和运行时库之间有区别吗?
>
Windows中的C标准库是否与Windows C RT库相同?
>它是在msvcrt.dll中实现的吗?如果不是,那么在哪里?
>该库如何以及何时链接到可执行文件?是否有相对地址的.lib文件?
抱歉,如果我混合了一些东西……
最佳答案 在Windows上,有3个模型在调试和非调试,即6个一起
1)单螺纹
2)使用MSVCRT.DLL进行多线程处理
3)多线程不使用MSVCRT.dll
默认情况下,Windows选择选项2.这是唯一使用运行时库的选项.使用选项1和3,所有内容都链接到可执行文件中.您可以从95以上将该可执行文件带到任何Windows机器上,它应该可以工作.不同之处在于案例2文件比案例1或3小很多.重要的是,如果您尝试将文件压缩到CD或软盘上.情况2也与特定版本的MSVCRT相关联.例如,如果您在VC6上构建它并尝试在Windows 7上运行可执行文件,除非您在W7计算机上安装了VC6 msvcrt,否则它将无法工作.
问题1:标准和运行时之间的区别.案例1和3,没有.案例2:是的. .lib只是一个跳转表. .dll包含实际代码
问题2:问题1不是同一个问题吗?
问题3:msvcrt = Microsoft Visual C运行时.这是运行时库
问题4:在编译时,如何使用链接器,何时链接.在案例1和3的运行时,它已准备就绪.在案例2中,如何 – 它已经完成. WHEN – 还有一个额外的步骤,即跳转表代码在运行之前与DLL链接.这个额外的步骤使得案例2的可执行文件加载速度变慢(并不是任何人都会注意到我们现在拥有的超高速机器).