今天修改Netkeeper的拨号器,做个记录多个帐号信息的,要使用到ComboBox,发现使用
GetPrivateProfileSectionNames();函数得到的是一个'\0'分隔的字符串,于是就自己写了处理代码。
//读取登陆信息
CString temp;
//遍历所有Section的名字
char SectionNames[MAX_PATH],*pSectionName;
ZeroMemory(SectionNames,MAX_PATH);
GetPrivateProfileSectionNames(SectionNames,MAX_PATH,".\\user.ini");
m_EntryList.AddString(SectionNames); // 得到{dy}个Section
for(int i=0;i<MAX_PATH-2;i++) //遍历第二个开始的Section
{
if(SectionNames[0]=='\0')
break;
if (SectionNames[i]=='\0')
{
if(SectionNames[i+1]=='\0') // 连续出现两个 '\0' 表示后面没有了
break;
pSectionName=(char*)&SectionNames+i+1; // C语言指针一定要学好,呵呵
temp=pSectionName; //先放CString,因为'\0'是结束符,安全得到Section
m_EntryList.AddString(temp);
}
}
m_EntryList.SetCurSel(0); //默认选择一个