全局变量不能访问????

famugong 2000-08-18 04:05:00
我有一个基于对话框的程序Thread,我在CThreadDlg.cpp中添加一个变量int g_nCount=0;(这应该是一个全局变量吧?)
然后我在onok()中添加如下代码,CProgressCtrl* pPro=(CProgressCtrl*) GetDlgItem(IDC_PROGRESS1);
pPro->SetPos(g_nCount*100/nMaxCount);
可是运行后却提示出错:error C2065: 'g_nCount' : undeclared identifier
这我就不懂了,onok()为什么不能访问g_nCount呢?
...全文
286 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
famugong 2000-08-19
  • 打赏
  • 举报
回复
原来在.h里也要申明extern的,谢谢各位了!
Holly 2000-08-18
  • 打赏
  • 举报
回复
zzh的回答有一点疑问?
实际是不需要头文件的,当你使用extern int g_nCount声明时,链接程序会自动在工程中的其他obj或lib(实际是obj的集合)中查找int g_nCount的外部链接,根本没有头文件一说。
zzh 2000-08-18
  • 打赏
  • 举报
回复
要把声明该变量的头文件包括进来,然后在使用该变量的头部加上extern int g_nCOunt的引用定义。
aznarble 2000-08-18
  • 打赏
  • 举报
回复
一个通用方法:
在xxxApp.cpp 中不属于任何一个函数的地方声明一个变量并初始化它。
在xxxApp.h 中加入extern 数据类型 变量名。

以后只要在其他任何文件中include这个xxxApp.h便可以使用这个变量并且值一直保存到退出实例。
Kevin_qing 2000-08-18
  • 打赏
  • 举报
回复
先聲明後引用,确认在使用g_nCount前有在头文件聲明过extern int g_nCount

实在不行,在stdafx.h里面再聲明一下
Holly 2000-08-18
  • 打赏
  • 举报
回复
你确认变量的声明没有在任何函数内或类的作用域内吗?
你确认声明该变量的地方和使用的地方是否在同一个CPP中吗?
如果不是,你确认用extern int g_nCount;声明过了吗?
即使你编译通过调试成功,你确认使用全局变量合理吗?
bokei 2000-08-18
  • 打赏
  • 举报
回复
把代码贴上来看看。

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧