我晕,在运行过程中出现错误(未定义变量)!
在程序中构建了一个类,有public类型的变量 TMemoryStream* mp_tofile;
程序运行过程中出现错误,提示:
Project Project1.exe exception class EAccessViolation with message 'Accedss violation at address 00402240. Read of address 00000010'. Process stopped. Use Step or Run to continue.
调试定位至 mp_tofile->Seek(0,soFromEnd); 语句,执行它即产生异常。未执行时,通过 Watches 窗口检查mp_tofile->Size; 窗口中显示,
Function call terminated by unhandled exception 0xc0000005。。。
点击Run按钮,Watches 窗口检查mp_tofile->Size; 窗口中显示,
Undefined mp_tofile, 我晕!
而且,有时出现此错误,有时不出现!各位大侠,请出招!谢谢!
问题点数:100、回复次数:11Top
1 楼redwrite(红妆素裹)回复于 2003-01-07 00:21:13 得分 10
顶一下先Top
2 楼kingfish(工作很忙,很少来csdn...)回复于 2003-01-07 00:46:49 得分 10
有没有 new?Top
3 楼yyfzy(singler)回复于 2003-01-07 08:01:53 得分 10
我估计是没有调用有关TMemoryStream的.h文件或者是.hpp文件Top
4 楼ouygg(痞子酷)回复于 2003-01-07 08:34:33 得分 10
TMemoryStream* mp_tofile=new TMemoryStream;
delete mp_tofile;
没有new,不需要添加头文件,因为calss.hpp包含啦他。Top
5 楼mustang_zr()回复于 2003-01-07 08:41:34 得分 10
同意楼上
看了你的错误信息,估计是没有new吧,mp_tofile不知道指到什么地方去了
所以会出错。Top
6 楼yuliwe(阿雪)回复于 2003-01-07 09:48:21 得分 10
我也常遇到此类错误,就是将头文件两头包含就好了Top
7 楼LanceX(小军)回复于 2003-01-08 14:01:34 得分 20
同意 ouygg(痞子酷)。另外有个好习惯是,类构造函数中和删除mp_tofile后,将其指针指向NULL;
class A
{
public:
TMemoryStream * mp_tofile;
A(){
mp_tofile=NULL;
}
};
TMemoryStream* mp_tofile=new TMemoryStream;
if (mp_tofile){
delete mp_tofile;
mp_tofile=NULL;
}
Good Luck!Top
8 楼rab2002cn()回复于 2003-01-08 19:27:22 得分 0
谢谢大家,我试试先!Top
9 楼rab2002cn()回复于 2003-01-09 23:52:32 得分 0
充分尊重大家意见,但还是不行。为什么呢?
那位大侠再教我几招?谢谢!Top
10 楼RomanticProgrammer() 兰企鹅||南极俺最帅 ()回复于 2003-01-09 23:59:10 得分 20
把你的mp_tofile创建的部分代码贴出来,你贴的这部分没有用...Top
11 楼rab2002cn()回复于 2003-01-11 20:49:40 得分 0
再次谢谢大家
现在我解决了这个问题,但解决的莫名其妙:
将封装mp_tofile的类取消了,将所有代码移植到Form的类中,其他的只是稍许改变以适应此变化,问题就没有了!!!希望这类问题以后不要出现。
也不知道这是不是Bug。明天结贴。Top




