【问题标题】:Unresolved external symbol link error未解决的外部符号链接错误
【发布时间】:2009-05-09 07:22:01
【问题描述】:

我有一个需要使用鼠标钩子的项目,所以我在我的解决方案中添加了一个 MOUSE HOOK DLL 项目。重建时,我收到以下错误:

Error   3   error LNK2005: "struct HHOOK__ * MyHook" (?MyHook@@3PAUHHOOK__@@A) already defined in projdialog.obj    projdialogDlg.obj
Error   4   error LNK2005: "struct HINSTANCE__ * MyInstance" (?MyInstance@@3PAUHINSTANCE__@@A) already defined in projdialog.obj    projdialogDlg.obj
Error   5   error LNK2019: unresolved external symbol "void __cdecl Hook(void)" (?Hook@@YAXXZ) referenced in function "public: void __thiscall CProjdialogDlg::OnLButtonDown(unsigned int,class CPoint)" (?OnLButtonDown@CProjdialogDlg@@QAEXIVCPoint@@@Z)  projdialogDlg.obj
Error   6   error LNK2019: unresolved external symbol "void __cdecl Unhook(void)" (?Unhook@@YAXXZ) referenced in function "public: void __thiscall CProjdialogDlg::OnLButtonUp(unsigned int,class CPoint)" (?OnLButtonUp@CProjdialogDlg@@QAEXIVCPoint@@@Z)  projdialogDlg.obj
Error   7   fatal error LNK1120: 2 unresolved externals .\Debug/projdialog.exe

【问题讨论】:

    标签: visual-c++ dll linker


    【解决方案1】:

    1) "struct HH​​OOK__ * MyHook" (?MyHook@@3PAUHHOOK__@@A) 已在 projdialog.obj 中定义

    通常会发生此错误,如果该函数因重复包含头文件而被包含两次,您可以注意(或)使用此链接器选项 FORCE:MULTIPLE

    2) 未解决的外部符号错误。 编译器找不到 Hook & Unhook 的函数定义。

    如果它在另一个文件中定义,则包含该头文件。 并将其添加到您正在调用该函数的文件的顶部。 extern void __cdecl Unhook(void);

    如果它是一个 API 并且 dll 是隐式链接的。 在附加依赖项中添加dll的.lib。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-03
      • 2010-11-20
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      相关资源
      最近更新 更多