CFileDialog dlg(TRUE,"*.txt|*.txt||",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"*.txt|*.txt||",NULL);
     if (dlg.DoModal()==IDOK)
     {
CString str=dlg.GetPathName();
WritePrivateProfileString("bk","bc",str,".\\set.txt");
     }
上面两句如果不domodal,将str直接初始化如str="d:\\s.txt",直接写入文件是可以的
但是如果我domodal存下路径再写入就无法写入。而且有一个程序是可以的,一个程序不可以。真的很费解了。
求高手

解决方案 »

  1.   

    你好好看看这个WritePrivateProfileString API的MSDN,用错了啊。
      

  2.   

    BOOL WINAPI WritePrivateProfileString(
      __in          LPCTSTR lpAppName,
      __in          LPCTSTR lpKeyName,
      __in          LPCTSTR lpString,
      __in          LPCTSTR lpFileName
    );
    楼主没把第三个和第四个参数搞混了?
      

  3.   

    CFileDialog会影响你的当前目录.
      

  4.   

    CFileDialog是会改变当前工作目录的。改成这样就行了:
    CFileDialog dlg(TRUE,"*.txt|*.txt||",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_NOCHANGEDIR,"*.txt|*.txt||",NULL);