怎么定义一个工程全局变量? 多个CPP文件都可以用到?WIN32程序. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 随便在一个CPP文件的函数体的外面的任何地方定义变量,比如:int a;在别的CPP文件中要有时先用extern声明一下,比如在另一个CPP中要用这个a,可以extern int a;下面就可以用了. 头文件中加 extern int a;如果在dll中药加 dllexport cpp文件中 extern int a = 0 ; include 头文件就可以使用了欢迎访问我的网站, www.nunew.com,刚注册的,自己开发了一个插值软件。 现在三个文件a.app a.h b.appa.appvoid GetVar(){ _cName="sdddd";}a.hvoid GetVar();#ifndef Test#define Teststatic char _cName[1024];#endifb.appint Message(char* str){ MessageBox(NULL, _cName, "Test", MB_OK);}在执行b.app的Message时_cName总是为空,不知为啥? 现在三个文件a.app a.h b.app a.app void GetVar() { _cName="sdddd"; MessageBox(NULL, _cName, "Test", MB_OK); } a.h void GetVar(); #ifndef Test #define Test static char _cName[1024]; #endif b.app int Message(char* str) { MessageBox(NULL, _cName, "Test", MB_OK); } 在执行a.app的GetVar时_cName是对的。在执行b.app的Message时_cName总是为空,不知为啥? 当我把a.h改为void GetVar(); #ifndef Test #define Test extern char _cName[1024]; #endif 调试报错unresolved external symbol "char * _cName" (?_LogFileName@@3PADA)IDE:VC6 a.h void GetVar(); #ifndef Test #define Test static char _cName[1024]; #endif =========不是这样的定义的,对于全局变量是不能是头文件中定义的,头文件中可以声明一下,但是不能定义,直接在a.cpp中定义,在b.cpp中用之前,在某个空白地方加一句:extern char _Name[1024]即可.你在a.h中定义了,估计a.h你在两个CPP文件中都引用了吧,这样,就成了两个不同的变量了. 在 b.cpp中开始的地方加 _cName="sdddd"; 定义了静态变量怎么能不初始化! 请问,这种形式的菜单是如何做出来的? 装了多遍VS2005,除了对话框控件,VC下的好多控件还是灰色的,不能用,救命呀 老师发作业,没有学过哪会!高手救命 用vc实现在word中用鼠标拖动自制的ActiveX控件? vs.net中的实例句柄的取回 我设置了菜单OWNERDRAW属性,但怎么没有重画菜单啊? 编译错误。。。。高分请教。 NAT的实现问题,如何实现网络层的数据包转发(高手帮忙看看一下) 一个奇怪的问题,关于ToolBar的。 自己创建的DIB位图LoadImage后返回为空 DRA什么意思 定义一个类模板,同时重载了=号运算符,编译时出错,高手看下是什么原因
在别的CPP文件中要有时先用extern声明一下,比如在另一个CPP中要用这个a,可以extern int a;
下面就可以用了.
cpp文件中 extern int a = 0 ; include 头文件就可以使用了欢迎访问我的网站, www.nunew.com,刚注册的,自己开发了一个插值软件。
a.app
void GetVar()
{
_cName="sdddd";
}a.h
void GetVar();
#ifndef Test
#define Test
static char _cName[1024];
#endifb.app
int Message(char* str)
{
MessageBox(NULL, _cName, "Test", MB_OK);
}在执行b.app的Message时_cName总是为空,不知为啥?
a.app
void GetVar()
{
_cName="sdddd";
MessageBox(NULL, _cName, "Test", MB_OK);
}
a.h
void GetVar();
#ifndef Test
#define Test
static char _cName[1024];
#endif
b.app
int Message(char* str)
{
MessageBox(NULL, _cName, "Test", MB_OK);
} 在执行a.app的GetVar时_cName是对的。
在执行b.app的Message时_cName总是为空,不知为啥?
void GetVar();
#ifndef Test
#define Test
extern char _cName[1024];
#endif 调试报错
unresolved external symbol "char * _cName" (?_LogFileName@@3PADA)IDE:VC6
void GetVar();
#ifndef Test
#define Test
static char _cName[1024];
#endif
=========
不是这样的定义的,对于全局变量是不能是头文件中定义的,头文件中可以声明一下,但是不能定义,
直接在a.cpp中定义,
在b.cpp中用之前,在某个空白地方加一句:extern char _Name[1024]即可.
你在a.h中定义了,估计a.h你在两个CPP文件中都引用了吧,这样,就成了两个不同的变量了.