遇到already defined in 键盘记录.obj 错误
我在试写一个键盘记录程序(DLL与可执行文件分开两个工程),编译可执行文件时(只声明DLL的头文件和引用DLL的库文件)总出现错误
键盘记录Dlg.obj : error LNK2005: "unsigned int m_aaaEditID" (?m_aaaEditID@@3IA) already defined in 键盘记录.obj
键盘记录Dlg.obj : error LNK2005: "struct HWND__ * m_aaaDlgHandle" (?m_aaaDlgHandle@@3PAUHWND__@@A) already defined in 键盘记录.obj
键盘记录Dlg.obj : error LNK2005: "class CString m_aaaEditString" (?m_aaaEditString@@3VCString@@A) already defined in 键盘记录.obj
Debug/键盘记录.exe : fatal error LNK1169: one or more multiply defined symbols found
*****************************************************************************************************
我的作法是新建一个MFC AppWizard(dll)工程(选共享MFC DLL),在头文件中声明出现问题的三个变量
accept(UINT,HWND);
BOOL installhook(); //钩子安装函数
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);//挂钩函数
DLL文件编译通过。
*****************************************************************************************************
然后我又新建了一个对话框工程,在MyDlg.h中声明
#include "......\\Hook.h"
#pragma comment(lib,"......\\Hook.lib")