请问定义全局变量在那里定义阿?我在一个对话框类CDialog1的
.cpp文件中定义了一个
CString str1("");
但是编译后有错
在
void CDialog1::OnButton1()
{
// TODO: Add your control notification handler code here GetDlgItemText(IDC_EDITA,str1);
}处
编译器说error C2065: 'str1' : undeclared identifier
.cpp文件中定义了一个
CString str1("");
但是编译后有错
在
void CDialog1::OnButton1()
{
// TODO: Add your control notification handler code here GetDlgItemText(IDC_EDITA,str1);
}处
编译器说error C2065: 'str1' : undeclared identifier
解决方案 »
- javascript调用ACTIVEX的事件
- EDIT控件
- 核心编程中互斥量的疑问三点
- 什么叫做商务功能!!
- __declspec(dllexport) int Function() 和 extern "C" int WINAPI Function()这两种声明方式有什么区别?
- 如何CString::Format()一个LONGLONG(_int64, REFERENCE_TIME)型为一个字串???
- 如何得到满足特定条件的纪录的最大值
- 请教有关软键盘的问题.
- 谁能解释一下磁盘的sector,track,head,不够再加一100分
- 怎么样把realplay格式的文件,变成用CD机可以听的格式。
- 用Visual C++6.0编写一对话框应用程序,在窗口中使用图片框输出一个任选位图。
- 如何为CTREECTRL的每一个ITEM指定自己的数据?
void CDialog1::OnButton1()
{
// TODO: Add your control notification handler code here GetDlgItemText(IDC_EDITA,str1);
}这样就没问题了。呵呵。仔细想想。
访问时用 ((CXXApp*)AfxGetApp())->m_strVal
全局变量的声明和定义
声明是说明一个变量的类型,.h文件中
定义是说明一个变量的实际要分配的大小,在.cpp文件中
如果你要定义成全局的,必须在应用程序的头文件中使用extern声明,theApp的声明和定义如下:
(你可以搜索你自己工程内的theApp)
//.h文件中
extern CKeyPlusApp theApp;//.cpp文件中
CKeyPlusApp theApp;
你可以在下面改成你要的
//.h文件中
extern CKeyPlusApp theApp;
extern CString str1;//.cpp文件中
CKeyPlusApp theApp;
CString str1("");
我照2楼的方法做了,果然可以,为什么啊?我初学vc,希望能讲解一下
但是我这样做了难道不能在view类中用这个全局变量吗?我在view类中加了下面的代码void CDialog2::OnButton2()
{
// TODO: Add your control notification handler code here GetDlgItemText(IDC_EDITB,str2);
}
结果又出错了
C:\Documents and Settings\123\桌面\全局变量方法\fffView.cpp(132) : error C2065: 'str1' : undeclared identifier
不过我始终不明白为什么按照2楼的做法也行呢?
还有,小弟我初来乍到,怎么给分阿?
你也象二楼那样做,然后在项目文件的.h文件中使用
extern Cstring str;来声明,这样做法就和我的一样了,
重要的不是定义的地点,而是申明的地方,因为在vc自动生成的文件中,都会自动include你项目的.h文件,所以......
extern是说明, 后面定义的变量是一个外来的变量,不是.cpp内部的变量(来自于另外的.cpp文件定义的变量)
建议楼主找本c的书看看,这年 头,象我这么老实的人不多了,.
寒...........