2009-05-09 24 views
1

は、私は、マウスフックを使用する必要があるプロジェクトを持っているので、私は再構築私solution.OnにMOUSE HOOK DLLプロジェクトを追加して、私は次のエラーを取得しています:未解決の外部シンボルのリンクエラー

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

答えて

1

1)projdialog.objで既に定義されている "struct HH​​OOK__ * MyHook"(?MyHook @@ 3PAUHHOOK __ @@ A)

通常、この機能はヘッダファイルU (または)このリンカオプションを使用することができます。FORCE:MULTIPLE

2)未解決の外部シンボルエラー。 フック&フックの関数定義をコンパイラが見つけることができません。

別のファイルで定義されている場合は、そのヘッダーファイルを含めます。 この関数を呼び出すファイルの先頭に追加します。 extern void __cdecl Unhook(void);

APIの場合、DLLは暗黙的にリンクされています。 dllの.libを追加の依存関係に追加します。

関連する問題