参考地址:http://blog.youkuaiyun.com/henry_sea/article/details/6185454
参考原文:
, luther baker <lutherbaker@...> wrote:
> I am walking through this tutorial in visual studio 2008
> http://www.codeproject.com/KB/wtl/wtl4mfc2.aspx
> I am about half way down and per the tutorial, I have implemented
stdafx.h, main.cpp and MyWindow.h. When I try to build this for the
first time, I am receiving:
> error LNK2001: unresolved external symbol "class WTL::CAppModule
_Module" (?_Module@@3VCAppModule@WTL@@A)
>C:/home/lbaker/dev/vstudio/real-estate-czar/vs2008/Debug/real-
estate-czar.exe : fatal error LNK1120: 1 unresolved externals
> I most definitely have this line in my stdafx.h file:
> extern CAppModule _Module;
> But I'm not sure where this gets resolved and I'm having trouble
drilling down to find it.
> Does anyone have some suggestions?
Thanks,
> -Luther
Defining an "extern" will only make the variable visible across the
source files. You still have to define "CAppModule _Module;"
somewhere in your source code .cpp file. If you are working on
Project.exe, Project.cpp would be a perfect place to define it.
Best regards,
He Shiming
附:http://www.cnblogs.com/luliang/archive/2008/08/21/1272746.html(extern的用法链接)
http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html(extern"C"的深入分析)
http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html(C++项目中的extern "C" {})
文章不难,相信大家都能看的懂
我是用Qt Creator 编写时遇到的该问题,本人菜鸟,所以还是费了点周折的,想法是将一个结构体全局化,在不同的地方可以调用
于是在头文件struct_values.h中定义:
struct Distance
{
int ID;
};
extern struct Distance Distance_struct;
这样就可以在其他地方用了,但是根据上文可以看出在需要引用的.cpp文件中需要声明
在mainWindow.cpp的开始声明:
Distance Distance_struct;
是开始部分,也就是和#include一块的地方
这样在该文件的所有地方都可以使用了:
void func1()
{
Distance_struct.ID=1;
ui->textBrowser->append(QString::Number(Distance_struct.ID));
}
void func2()
{
Distance_struct.ID=2;
ui->textBrowser->append(QString::Number(Distance_struct.ID));
}
O了,可以进行下一步了,去吃饭