函数传值问题
结构体定义
TParam
{
double f1;
double f2;
};
预调用的类定义
头文件
class TPortConfig
{
public:
LoadFromFile();
__property TParam Param = {read=m_Param,write=m_Param};
protected:
TParam m_Param;
};
执行部分
#include "PortConfig.h"
TPortConfig::LoadFormFile()
{
m_Param.f1 = 2.1;
m_Param.f2 = 1.8;
}
其他地方调用:
#include "PortConfig.h"
TXXDlg::Test()
{
TParam Param;
TPortConfig *Config = new TPortConfig();
Config->LoadFromFile();//程序可以进行到该步,并且Config有值;当进行下一步时,Config值为???,并且报错
Param = Config->Param;
}
但是在其他窗体中调用时可以正常返回值信息。百思不得其解,望高手解惑,谢谢。
[解决办法]
声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中
[解决办法]
除了这句TPortConfig::LoadFormFile() 中的From写成了Form 还真没看出啥问题
[解决办法]
执行完LoadFormConfig()函数后,类指针的值就会变为???
有可能是越界。检查一下LoadFormConfig()中的行为。
TPortConfig *Config = new TPortConfig();
TPortConfig * A = Config;
LoadFormConfig();
TPortConfig * B = Config;
if(A != B)
ShowMessage("执行函数LoadFormConfig导致越界");//