访问全局变量的问题
icewn 2003-10-15 02:30:20 我在主窗口定义一个全局变量a,a定义在头文件中,现在做一个登录窗口,登录窗口主程序cpp文件中new出来,并用showmodal显示,此时 登录窗口不能再访问主窗体定义的全局变量,该怎么解决,
主程序cpp文件如下:
#include <vcl.h>
#include "Login.h"
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Main.cpp", MainForm);
USEFORM("DM.cpp", MD); /* TDataModule: File Type */
USEFORM("Login.cpp", LogForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
TLogForm *LogForm = new TLogForm(Application);
try
{
if (LogForm->ShowModal() !=mrOk)
{
delete LogForm;
return 0;
}
}
catch(...)
{
delete LogForm;
}
delete LogForm;
Application->CreateForm(__classid(TMD), &MD);
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
因为,登录窗口是在主窗口创建之前new出来的,访问主窗口的变量会出现内存泄漏,如果是在登录窗口,new主窗口,可以访问,因为是new出来的,地址不同,所以delete后,根本不能改变主窗口的变量的值,向各位兄弟姐妹求教