在线等,如何在MFC中创建一个全局函数

来源:百度知道 编辑:UC知道 时间:2024/06/03 03:21:03
这样的话,项目里面每一个类都可以调用这个函数,这样就可以简化程序,

怎么弄啊 ,在线等
全局变量是不是AFX大头的啊
还有 我有两个类里面都要用到 修改 这个功能,如果不用全局做,一般怎么做啊

既然用MFC,你就不应该想到用什么全局函数。不过你问到了,还是给你说下,MFC程序应该有个全局变量,叫做 theApp ,你看它是定义在哪里的,你紧跟它定义一个函数,不就是一个全局函数了吗。

可以定义成静态函数,用 static 关键字,比如在类A中定义静态函数 Fa
class A
{
public:
static int Fa();
}
可以在类B中用下面的方法直接调用:
class B
{
int n;
n=A::Fa();
}

另外,全局的库函数是Afx开头的,自定义的全局函数可以不用Afx开头,而且最好不要用,免得让人误以为这是库函数。

在app类中创建一个public函数。

整个mfc程序是从app的那个类开始跑起来的。

以后调用该函数的时候用下面的方法

app::function()

注意app不是类的全名。

AFX跟全局变量没有关系,它的意思是应用程序额框架。
A:application
F:frame
x:没有什么特殊意思,为了好听好看加上去的。

在某个文件中定义好全局变量后,比如 int iTemp;,别的地方要用到的话用 extern int iTemp; 就表示这个变量在别的地方已经声明过了,这里用到的iTemp就是那个地方声明的那个变量。其他类型的变量或者函数或者对象都可以这么用。
如同楼上说的,你看看theApp在什么地方定义的定义在那就行了
尽量不要用到全局变量,如果程序涉及到多线程的话就要考虑同步问题了,不然会出现莫名其妙而且很难调试的问题。

全局函数在MFC里有啥出奇的吗?
就随便面定义一个函数,不就是全局函数吗

你在一个函数里定义后,在另一函数里调用不就可以了,全局好象不可以的.