当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。
 

 

    摘要:ping的实现过程很简单,该命令将引发ip层发送一个简单的ip包,一般是32字节。而目的方收到这个包后,将源地址和目的地址变换一下,重新发送这个包即可,当然还要加一些超时机制。其实,我们也可用c++ builder netmaster中的nmecho控件来实现网络连接检测功能。 首先定义以下控件 三个edit控件:一个用于接收远程主机的ip地址或域名,一个用于接收用户设置的超时机制的时间,一个用......
    摘要:一、multi_tier结构的实现 c++ builder提出的multi_tier是把以前的client/server前端应用程序内的bde、sqllink、datamodule拿到另一台nt服务器上,也叫应用程序服务器,而前端机只留下应用程序及dbclient.dll,而移到应用程序服务器上的datamodule则变成一个com程序,此com程序是通过bde、sql link传输sql到后端......


在MFC下如何定义全局变量和全局函数

用mfc制作的工程由很多文件构成,它不能象一般c++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量与函数必须用一些特殊方法才行.实际上有多种方法可以实现,这里只介绍两种方法.

用mfc生成的工程中都有一个名为cxxxapp的类,它派生于cwinapp类.这个类主要进行程序的初始化,生成文档.视图对象等工作.我们可以把需要全局访问的变量与函数定义为这个类的成员变量与成员函数,就可以实现全局访问了. 【程序编程相关:借助封装类实现线程调用带参方法

一.在应用程序类中定义 【推荐阅读:在ASP.NET中值得注意的两个地方

例:test.h:(应用程序类头文件) 【扩展信息:ASP.NET2.0中数据源控件之异步数

从严格意义上讲,这种变量与函数并不是全局的,因为它仍然只是类中的成员,只是由于我们很容易获得cxxxapp类的指针,所以我们可以在文档.视图.对话框以及各种自定义类中访问到它们,达到与全局变量类似的效果.访问时用函数“afxgetapp()”获得cxxxapp类的指针,用“afxgetapp()->成员”访问变量或函数.

class ctestapp : public cwinapp

{ public:

int x; //全局变量

int f(int y); //全局函数

…………

};

test.cpp:(应用程序类程序文件)

int ctestapp::f(int y) //全局函数定义

{ y++;

 return y;

}

定义在ctestapp类中的变量与函数可以在其它类中被访问.比如在视图的某函数中要访问变量x与函数f():

void ctestview::xyz()

{

 ctestapp *app = (ctestapp *)afxgetapp(); //生成指向应用程序类的指针

 app->x = 0; //访问变量x

 int z = app->f(1); //访问函数f()

 …………

}

这样,变量x与函数f()可以视作为全局的.

用这种方法实现的全局变量与全局函数虽比较简单,但也有缺点,一是访问不太方便,每次都需要获取应用程序类的指针;再就是把一些与应用程序类本身无关的变量与函数放在里面,使这个类看上去怪怪的,破坏了类的封装.
...   下一页

 ·visual c++ mfc 中常用宏的含义    »显示摘要«
    摘要:and_catchand_catch and_catch(exception_class,exception _object_point_name) 说明:定义一个代码块,它用于获取废除当前try块中的附加异常类型。使用catch宏以获得一个异常类型,然后使用and_catch宏获得随后的异常处理代码可以访问异常对象(若合适的话)已得到关于异常的特别原因的更多消息。在and_catch块中调用......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE