未解析的外部符号链接到VS6库

时间:2016-04-14 16:14:13

标签: c++ visual-studio-2015 unresolved-external

我有一台NIUSB8452 DAQ,供应商精心提供了ni845x.lib和ni845x.h,所以我可以使用C代替LabView进行数据读取。但是,我在使用VisualStudio 2015中的lib时遇到了一些问题。第一点警报可能是他们的文档说它与VS6兼容,但我看到其他人在这里成功使用VS6上的VS6库所以,我希望我也能这么漂亮。

我现在现在的问题是,在构建时,我遇到类似

的链接器错误
unresolved external symbol @ni845xStatusToString@12 referenced in function (function name follows)

在谷歌搜索时,我发现this question提到了dumpbin / exports。要检查我是否没有遇到像所描述的海报那样的32/64位错误(因为我不确定如何诊断它,它似乎是一个好的起点),我运行了dumpbin / exports外部库。我收到了一堆公共符号,包括

FF06 __imp__ni845xStatusToString@12
FF06 _ni845xStatusToString@12

我肯定看到@ ni845xStatusToString @ 12,这就是VisualStudio抱怨未解决的问题。

@ ni845xStatusToString @ 12和_ni845xStatusToString12有什么区别?后者的存在和前者的缺失表明我对这个导入做错了吗?

备注

  • this question中所述,lib和header已包含在文件中,但我提供了#4的lib的完整路径,我认为这意味着您只需要文件名。
  • 我在我的cpp文件中使用了extern“C”{#include ni845x.h},虽然ni845x.h里面有#ifdef __cplusplus样板文件。

0 个答案:

没有答案