c++ - LNK2019错误中的@符号是什么意思?

标签 c++ c visual-studio-2010 linker

我正在尝试解决我的链接器错误:

错误 LNK2019:函数中引用了未解析的外部符号 _WDC_ReadAddr32@16

我不确定 @16 指的是什么。

我很确定我向项目添加了正确的 lib 文件。我使用 dumpbin.exe 转储了 lib 文件,并看到:

  • _WDC_ReadAddr16@20
  • _WDC_ReadAddr32@20
  • _WDC_ReadAddr64@20
  • _WDC_ReadAddr8@20

所以我很困惑为什么链接器会寻找 _WDC_ReadAddr32@16,即使它设法链接了该 lib 文件中的其他符号。

函数原型(prototype)为:

DWORD DLLCALLCONV WDC_ReadAddr32(WDC_DEVICE_HANDLE hDev, DWORD dwAddrSpace, KPTR dwOffset, UINT32 *val);

我正在使用 Visual Studio 2010 进行编译。此外,lib 文件是用 C 编译的,因此它在方法周围有 extern "C",但我试图在 C++ 项目中使用它。

最佳答案

@ 符号指的是 number of bytes of parameters for the function根据雷蒙德陈

关于c++ - LNK2019错误中的@符号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19775113/

相关文章:

c++ - view::c_str 与 view::split 有问题吗?

c++ - 有什么方法可以知道目录是否包含子目录?

c - *char 数组末尾的段错误

c# - 每当我可以很好地练习时是否使用静态类?

visual-studio-2010 - 如何将 PowerShell 与 Visual Studio 命令提示符结合使用?

c++ - 嵌入式系统的谷歌测试

c++ - 如何获取 QTreeWidget 的点击/选择项目

c - 没有一种方法可以获取字符串

solaris - 多线程 printf 与 write(2) 缓冲

c# - 为什么新创建的 EF 实体在尝试保存时抛出 ID is null 异常?