在一个窗体中调用另一个窗体内的函数的奇怪问题
在工程中,有三个窗体MainForm、ColorSetForm和FontSetForm
在MainForm.h中包含了其它两个窗体的头文件
在ColorSetForm.cpp和FontSetForm.cpp中,包含了MainForm.cpp
在MainForm中有一个public的函数
UnicodeString getfontname(){
return this->fontname;(注:fontname是MainForm中的一个私有变量)
}
ColorSetForm和FontSetForm都是在MainForm中点击相应的菜单时,创建并显示的
问题在于:
1.在ColorSetForm中使用MainForm->getfontname()能正常的取得值
2.在FontSetForm中使用MainForm->getfontname()会报访问出错
在调试时,发现在ColorSetForm调用此函数时,在getfontname函数内,this指针是正常的
在FontSetForm中调用此函数中,在调用前MainForm的句柄都是正常的,但一跳转到getfontname函数内时,其this指针都变成空的了
请问此问题是怎么引起的?如何解决?
PS:win7 sp1,c++Builder xe with update1
[解决办法]
看样子mainform是主窗体了,应该不会失效的,你的问题挺奇怪的
试着把this去掉,或者用mainform代替看看会不会有问题?最好的方法是把代码贴出来,可能是别的地方的问题