6

使用 Visual Studio 2008,我有.H一个.LIB库文件。我编写了一个程序并通过项目属性引用了 LIB。它编译得很好,但是当它运行时,它会要求安装 DLL。如果 DLL 与它的工作原理在同一个目录中,EXE但是,如果我有LIB,这是否已经意味着函数静态链接到我的程序?

4

2 回答 2

13

并非所有lib文件都是静态库。有些是导入库,很可能,这就是您链接的内容。

如果您的lib文件比其相应的文件小得多dll,则肯定表明它是一个导入库。

于 2010-02-10T22:14:23.947 回答
10

让您的程序使用 DLL 需要一个导入库。它是一个扩展名为 .lib 的文件,就像静态 .lib 一样。但它非常小,它只包含由 DLL 导出的函数列表。链接器需要这个,因此它可以将 DLL 的名称嵌入到导入表中。您可以通过在 .exe 上运行 Dumpbin.exe /imports 来亲自查看

于 2010-02-10T22:18:19.490 回答