2011-05-11 27 views
1

我有一个DLL与其导入库。当我尝试引用导入库时,出现链接器错误,导致某些函数无法解析。我认为在DLL及其导入库的版本中存在不匹配。 有什么办法可以检查导入库是否完全匹配它的DLL,而不用通过DumpBin手动检查大量函数?如何检查LIB导入库是否完全匹配其DLL?

回答

1

问题是头文件包含的函数没有在.lib文件中定义。很可能你有一个新的头文件和一个过时的.lib文件。

可能的解决方案:

0

当你链接二进制只* .lib库很重要(包括导入库,但显然不包括DLL)。链接器甚至可能不知道它是导入库而不是其他静态库。还可以创建混合库,其中包含一些对* .lib文件进行静态贡献的函数,以及从某些DLL导入的其他函数。

您未解析的函数仅存在于* .lib库(包括导入库)中。 如果你确实链接你的导入库,并且确定你的DLL导出了未解析的函数,那么你的导入库不匹配或者导致导出库不能导出该函数(例如,这些函数可能没有列在DLL的* .def文件中项目)。