我已经继承了一个遗留项目,它利用* .lib中的一些外部函数。据我所知,使用* .lib的语法是正确的,并且这个 可以在他们使用的任何visual studio版本中构建。 (即,有一个外部“C”原型文件,并且所有功能签名都是正确的)。C++ visual studio,使用.lib文件的无法解析的外部符号
建设的时候,我得到“错误LNK2019:解析外部符号_A86_ReadConfigReg @函数引用12 ......”
我很有信心,这是因为是* .lib相关的是* .lib文件文件的名称中包含“A86”...还有一个具有相同名称的* .dll。
我去了项目属性 - >连接器 - >输入并列出* .lib文件名称在“其他依赖”,但没有运气。我尝试添加包含目录,将* .lib & * .dll复制到可执行文件的位置。但没有运气。
我该如何解决这个错误?
我没有做到这一点,并从转储仓的输出中有一行显示: “15 A86_ReadConfigReg”。你下一步怎么做? – user2913869
@ user2913869检查链接器问题的更新答案。 –
调用约定的确被设置为__cdecl(/ Gd)。就像我在原始问题中提到的那样,头文件确实具有“extern”C“{}和括号之间列出的所有函数原型,我确实看到原型是这样定义的:int _stdcall A86_ReadConfigReg(int iHandle, DWORD dwOffset,DWORD * pdwResult);所以我也尝试将“_stdcall”标签改为“__cdecl”,然后完全删除它,但它仍然不会生成。 – user2913869