我是这么做的
CString   fname,path,str;   
path=AfxGetApp()->m_pszHelpFilePath;   
fname=AfxGetApp()->m_pszExeName;   
path=path.Left(path.GetLength()-fname.GetLength()-4)+"\\setinfo.ini";
char gdata[20],kdata[20],edata[20],adata[20],bdata[20];
GetPrivateProfileString("DataInfo","gray",NULL,gdata,20,path); 
str.Format("%s",gdata);
GetDlgItem(IDC_GraySTATIC)->SetWindowText(str);
这段代码我是放在窗口初始化里的,运行之后没有显示,文件里数据是存在的,请帮我分析一下,谢谢!

解决方案 »

  1.   

    BOOL CChatDlg::GetIniFile()
    {
        g_SysOpt.szInitFile=".\\Chat.ini";    GetPrivateProfileString("BEYOND DESC",                                // 发送数据到指定IP
                                "IP",
                                "192.168.0.35",
                                g_SysOpt.szDataCommSvrName,
                                100,
                                g_SysOpt.szInitFile);
        
        g_SysOpt.iDataCommSvrPort = (UINT)GetPrivateProfileInt("BEYOND DESC", // 发送数据到指定Port
                                 "PORT",
                                 6300,
                                 g_SysOpt.szInitFile);
        return TRUE;
    }我一般这样读取ini文件
      

  2.   

    前几天我也碰到和你一样的问题了,GetPrivateProfileString 的最后一个参数一定要是绝对路径,
    设置断点跟踪一下,看看路径有没有错
      

  3.   

    path=AfxGetApp()->m_pszHelpFilePath;  
    fname=AfxGetApp()->m_pszExeName;  
    path=path.Left(path.GetLength()-fname.GetLength()-4)+"\\setinfo.ini"; ----
    这样算出来的路径应该是错误的吧
    自己跟踪一下我试了一下,多了一个"\"这样应该可以
    path=path.Left(path.GetLength()-fname.GetLength()-4)+"setinfo.ini";