全局变量 theApp 怎么用 ?

wdf1 2000-08-11 02:00:00

我想在 MDI 应用程序的子窗体的视类中用全局变量 theApp 来访问应用程序类中的
函数,而不用 AfxGetApp(),但编译出现错误"theApp 未定义." 这问题怎么做 ?
...全文
350 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bpfrom 2000-11-29
  • 打赏
  • 举报
回复
虽然列位老兄都说得用AfxGetApp()函数,但是书上却说,theApp是一个全局变量。既然全局,为什么还要做其它辅助工作?
dzl 2000-08-11
  • 打赏
  • 举报
回复

假设工程名为Test,在Test.h加入Extern,注意位置:

class CTestApp : public CWinApp
{
public:
int m_ntest;
CTestApp();
......
};

extern CTestApp theApp; //一定要在这个位置

在需要引用theApp的CPP文件加入
#include "test.h"

这样就可以引用theApp了:
theApp.m_ntest=123;

huntout 2000-08-11
  • 打赏
  • 举报
回复
並不推薦直接使用theApp,如果只是要減小書寫量,可以︰
1、先輸入aaa,然後用AfxGetApp()替換aaa;
2、定義一個局部變量
CYourProjectApp* pa = (CYourProjectApp*) AfxGetApp();

第二種方法較好!︰)
wdf1 2000-08-11
  • 打赏
  • 举报
回复

对不起 ! 我因大量的通用函数定义在 App 类中,用AfxGetApp()书写起来量非常大,用theApp
就方便多了。 请问有办法解决吗 ?
hyzx2000 2000-08-11
  • 打赏
  • 举报
回复
使用下面的语句:
extern C...App theApp;
当然别忘了加入定义了C...App的头文件.

最好的方法还是如huntout所说。
huntout 2000-08-11
  • 打赏
  • 举报
回复
為甚麼不用AfxGetApp()?
theApp 指在yourProject.cpp文件中聲明。在別的文件中當然未定義了!

16,466

社区成员

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

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

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