CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  BCB茶馆

关于全局变量的问题,请大家帮忙看看

楼主zdhsoft(冬瓜猫)2005-03-02 23:09:24 在 C++ Builder / BCB茶馆 提问

我现在定义了一个全局变量[实为一个类的实例],但使用中发现,这个变量在窗体全部释放前就执行析构函数了,结果总是在程序退出的时候,报错非法访问变量,特别是有多线程的时候,请大家帮忙多多指点:)谢谢先! 问题点数:100、回复次数:12Top

1 楼sprewellkobe(我为软件狂!)回复于 2005-03-03 00:21:13 得分 10

你最好把代码给出,我理解是你编的有问题,可能是对象都没了,你还在析构里使.  
   
  多线程尽量不用全巨变量,如果用全局变量销毁由主线程完成.Top

2 楼cczlp(不惑)回复于 2005-03-03 08:13:46 得分 10

upTop

3 楼fyhui(一只小猫)回复于 2005-03-03 09:34:47 得分 10

我觉得不可能把,看看代码再说Top

4 楼hailin10(虎子)回复于 2005-03-03 09:58:21 得分 10

不会吧Top

5 楼Maconel(Maconel)回复于 2005-03-03 10:07:03 得分 10

你的窗体实际上也是个全局变量,先释放你的变量,再释放窗体,也是很正常的嘛。  
  我也遇到过这个问题,解决方法就是在使用这个变量前,先判断一下:  
  class   a;  
   
  if   (a)  
  {  
          ...  
  }Top

6 楼zdhsoft(冬瓜猫)回复于 2005-03-03 11:43:27 得分 0

多线程的问题倒是早就解决了!Top

7 楼fangrk(加把油,伙计!)回复于 2005-03-04 15:35:35 得分 10

可以这样试试看,在.h文件中的private区域中增加:MyType*   ptr;  
  在cpp文件的onFormCreate或者Form::Form中增加ptr=new   MyType;  
  在cpp文件的onFormDestroy中delete   ptr;Top

8 楼sephil(NAILY Soft 【哈里波特大】)回复于 2005-03-04 15:39:10 得分 10

释放变量放在#progma   exit里Top

9 楼magicsnake(北极狐)回复于 2005-03-04 16:54:20 得分 10

是不是在子线程内释放了然后在主线程结束的时候调用Top

10 楼zdhsoft(冬瓜猫)回复于 2005-03-07 11:35:16 得分 0

不是,我不是在用多线程的时候出的问题.  
  我定义了一个.cpp,用来放全局变量的!但这里定义的全局变量在所有的form之前就释放了Top

11 楼StockViews(股视)回复于 2005-03-11 04:55:55 得分 10

这正常。  
   
  全局变量的构造和析构的时机真的不好把握,最好不要使用全局变量。  
  如果一定要用,那也不能使用太多,我一般喜欢定义一个类并把原准备做为全局变量的东东都移到那个类中当普通的数据成员变量,然后把这个类在主窗体中构造(new)和析构(delete)……Top

12 楼cczlp(不惑)回复于 2005-03-11 07:53:09 得分 10

先判断是否释放了然后再使用类。Top

相关问题

  • 全局变量
  • 全局变量!!
  • 全局变量
  • 全局变量?
  • 全局变量
  • 全局变量
  • 请问怎么设全局变量?
  • 请教全局变量的问题。
  • 请问怎样定义全局变量?
  • 请教各位高手全局变量

关键词

  • 多线程
  • 文件
  • cpp
  • 全局变量
  • 变量
  • 窗体
  • 析构
  • 释放
  • 问题
  • 使用

得分解答快速导航

  • 帖主:zdhsoft
  • sprewellkobe
  • cczlp
  • fyhui
  • hailin10
  • Maconel
  • fangrk
  • sephil
  • magicsnake
  • StockViews
  • cczlp

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo