vc线程如何访问全局变量,vc++ 多线程

http://www.itjxue.com  2023-01-17 21:48  来源:未知  点击次数: 

C++的类成员函数如何访问全局变量?

全局变量一般这样定义:

1、在*.cpp中定义 int myInt;

然后再在要用到的地方的.cpp里extern int myInt;

2、在stdafx.cpp中加入:

int myInt;

然后在stdafx.h中加入:

extern int myInt

这样定义以后无论在什么文件中都是可见的.

3、比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h,把你先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h中就不要加值了。然后调用时,第一次调用的#i nclude Glbs.h,以后调用的#i nclude Externs.h

附:

问:如何在VC++中使用全局变量,以使文档中的所有类都能访问。

答:把该变量放到该应用程序类的头文件中的attribute处。然后,在程序的任何地方,你都可以用下面的方法来访问该变量:

CMyApp *app=(CMyApp*)AfxGet-App();

app-MyGlobalVariable=…

用这个方法,不但可以定义全局变量,也可以定义全局对象。

例如:

MyClass MyObject;

CMyApp*app=(CMyApp*)AfxGet-App();

app-MyObject.MyFunction();

VC中使用全局变量的2种办法及防错措施

1. 对于全局变量存在和函数一样的问题,为了在其他CPP文件中能够访问这些变量,必须在主文件的H文件中加上extern声明,格式如下:

extern varibletype var; (声明)

在主文件的CPP文件中定义

varibletype var; (定义)

例子:

AppWizard建立一个Test工程

那么在Test.h中声明extern CString cs;

在Test.app定义CString cs;

如果要定义整个工程的全局变量,在任何一个CPP文件中进行定义,然后在需要引用这个变量的文件中进行声明。如全局变量很多可以选择使用定义全局变量的.h文件,在需要的地方直接include头文件即可,不需要写那么多extern了。

2.应用程序类的主头文件处定义变量varibletype var,然后,在程序的任何地方,都可以用下面的方法来访问该变量:

CClassApp *app=(CClassApp*)AfxGetApp();

app-var=

 类似的,以上方法也可以定义全局对象

例子:

AppWizard建立一个Test工程

那么在Test.h中声明 CString cs;

使用的时候CTestApp *app=(CTestApp*)AfxGetApp();

app-cs="Global"

C++中全局变量怎么定义使用

1、全局变量的定义和普通变量的定义相同,只是在别的cpp文件中使用前需要用extern修饰符声明。

2、extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。另外,extern也可用来进行链接指定。

VC多线程访问同一全局变量的问题

WaitForSingleObject(pFrameInQueue-m_mutex,INFINITE);

ReleaseMutex(pFrameInQueue-m_mutex); 需要成对的出现.你在if判断里边释放一次

但是如果if条件不成立,你就没有调用释放.这样的结果就是互斥量mutex被锁定,

其他线程无法调用.

在2个if判断外加上释放mutex的语句再试一试

如何在VC多线程下使用私有的全局变量

貌似没有很好的办法。只有为函数增加一个参数(指针或引用,一个变量的话可以引用,多个就只能用指针了),在线程中定义变量并将变量传入。

vc++中如何设全局变量

把全局变量放到一个头文件中,在用到这个全局变量的时候包含这个头文件。这样的代码容易围护。但软件开发过程中最好不要用全局变量。

你程序错误的原因:

它是在链接的时候出现的错误,当你编译的时候,编译器找到num这个符号,发现你做了extern int num;省名,所以编译没有问题,但链接的时候编译器会去找这个变量的定义,如果没有找到就会出现上面的错误.

mfc线程得不到全局变量

线程中是可以使用全局变量的,这个没有问题。但是你对界面的操作,不可以使用该方法。可以通过对界面在线程中发送消息的方式来实现。

(责任编辑:IT教学网)

更多

推荐CorelDraw教程文章