首页 > 代码库 > 【error LNK2005: "struct HWND__ * ui_hwnd" (?ui_hwnd@@3PAUHWND__@@A) 已经在 Susake.obj 中定义】
【error LNK2005: "struct HWND__ * ui_hwnd" (?ui_hwnd@@3PAUHWND__@@A) 已经在 Susake.obj 中定义】
产生原因:多文件包含时,全局变量未用extern
解决方法:直接在全局变量前加上extern即可,若要在在其他文件中使用,该变量声明下就ok了~~
另外引出一个话题,你是不是也发现了这么一个现象??
比如
A.h
A.cpp
#include "A.h" #include "B.h" HWND ui_hwnd, hwnd; int main(int argc, char *argv[]) { ui_hwnd = hwnd; return 0; }
B.h
B.cpp
#include "B.h" ui_hwnd = NULL;
为什么在B.cpp中却不需要声明ui_hwnd呢???
我个人猜测是B.h能识别B.cpp,而不能识别A.cpp(虽然都包含了B.h)~~~
转载请注明出处:http://www.cnblogs.com/Susake/p/3721883.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。