读书人

求解关于AnsiString的有关问题

发布时间: 2012-03-18 13:55:38 作者: rapoo

求解关于AnsiString的问题?
无意中发现在FormCreate事件中对Form类得字符串赋初值会丢失。
经过测试这个问题发生在读取ini文件时会产生,如果直接赋值则没有问题。各位高手是嘛原因啊?

C/C++ code
void __fastcall TForm1::FormCreate(TObject *Sender){    AnsiString iniFileName = ExtractFilePath(Application->ExeName) + "DeviceIPList.ini";    TIniFile *ini = new TIniFile(iniFileName);    try    {        Count  =  ini->ReadInteger("COUNT","CN",0);        SQLIP =   ini->ReadString("COUNT","SQL","NO");        Memo2->Lines->Add("1"+SQLIP);        if(Count)        {            DevicePro.Length = Count;            for(int i=0;i<Count;i++)            {                DevicePro[i].Name = ini->ReadString(IntToStr(i+1),"Name","NO");                DevicePro[i].IP = ini->ReadString(IntToStr(i+1),"IP","NO");                DevicePro[i].State = false;            }//for        }//if    }//try    catch(...)    {    }    delete ini;}

代码中SQLIP是类Form的Private中声明,执行上述代码能够获取正确的值,但是当该过程结束后,变量SQLIP 变为NULL,求解?

[解决办法]
你检查一下其他事件中是否对该对象有赋值的操作?
[解决办法]
探讨
无意中发现在FormCreate事件中对Form类得字符串赋初值会丢失。
经过测试这个问题发生在读取ini文件时会产生,如果直接赋值则没有问题。各位高手是嘛原因啊?

C/C++ code
void __fastcall TForm1::FormCreate(TObject *Sender)
{


AnsiString iniFileName = ExtractFileP……

读书人网 >C++ Builder

热点推荐