Windows上标准c库的dll文件名是什么?

时间:2012-03-26 22:32:07

标签: c windows dll

我正在使用libffi在多个平台上运行时加载dll。自动搜索正确的系统路径,我只需要知道系统DLL的名称在Microsoft平台上的标准c库函数。

2 个答案:

答案 0 :(得分:3)

Windows在msvcrt.dll中附带C运行时。如果您正在编写一个自包含程序并希望从C标准库中调用函数,那么这可能就是您所需要的。

如果您的程序使用与其他C运行时链接的库,那么这对您没有好处。但在这种情况下,您不需要做任何特殊的事情,因为您的编译器/链接器将使C标准库可用。

如果要在加载的其中一个DLL使用的C运行时中调用函数,那就是一个问题。运行时可以静态链接,也可以是许多不同的动态运行时之一。

答案 1 :(得分:2)

与Linux和类Unix系统不同,Windows没有内置的“自然”编译器工具链,因此没有C库。每个编译器都必须自己发布。微软自己的MSVC链接到像msvcrtxxx.dll这样的动态库(带有某种版本控制;较新版本的Windows附带了某些版本);如果使用GCC进行编译,那么您需要在某个地方为该编译器提供C运行时(或者使用-static-libgcc静态链接)。

同样,没有类似于/usr/lib的中央库存储库或强版本控制方案,因此典型的Windows应用程序通常最终会为每个应用程序提供动态库。

(Windows的核心平台组件是Windows API库,如Kernel32.exeGDI.exeUser.exe,任何具有Windows API标头的C编译器都可以链接到这些库。)< / p>