现象:
今天在使用MFC进行编程时,出了一个错误:
错误 440 error LNK2005: “void * hEvent_Cconn” (?hEvent_Cconn@@3PEAXEA) 已经在 CSProtocal.obj 中定义
原因:
没有在声明hEvent_Cconn对应的头文件对应的源文件中进行定义。
我的是在globalval.h中进行的声明 extern HANDLE hEvent_Cconn;//创建客户端连接句柄

因此需要在globalval.cpp中进行定义 HANDLE hEvent_Cconn;//创建客户端连接句柄

.h文件和.cpp文件的区别
在h文件中声明(Declare),而在cpp文件中定义(Define)。
h文件中包含声明、条件预编译指令以及类的定义
cpp文件中进行全局变量的定义(及初始化)、全局函数的定义、类函数成员的定义、类带static限定符的数据成员的初始化
作者:GL3_24
来源:优快云
著作权归作者所有。转载请联系作者获得授权。
本文详细解析了在MFC编程中遇到的errorLNK2005错误,即“void*hEvent_Cconn”重复定义的问题。作者在globalval.h中声明了hEvent_Cconn,但未在对应的globalval.cpp中定义,导致链接错误。文章强调了在.h文件中声明而在.cpp文件中定义的重要性,并解释了两者的区别。
2184

被折叠的 条评论
为什么被折叠?



