什么是Windows上的标准C库的DLL文件名?

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

Windows在msvcrt.dll中附带一个C运行库。 如果你正在编写一个自包含的程序,并且想从C标准库调用函数,那么这也许就是你所需要的。

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

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

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

同样,没有一个类似于/usr/lib的中央库存储库或强大的版本控制方案,因此典型的Windows应用程序通常最终将自行设置动态库。

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