回 帖 发 新 帖 刷新版面

主题:ini文件写入问题

我在子窗口中获得了文件的路径,返回父窗口时本来是要将文件路径写入到ini中的,但是怎么也不能写入,除非获得的文件路径是跟该程序在同意目录下的才能写入,请问这种怎么回事

回复列表 (共4个回复)

沙发

路径问题,可以用 SetCurrentDirectory 来改变程序的默认工作目录.

The SetCurrentDirectory function changes the current directory for the current process. 

BOOL SetCurrentDirectory(

    LPCTSTR lpPathName     // address of name of new current directory 
   );    
 

Parameters

lpPathName

Points to a null-terminated string that specifies the path to the new current directory. This parameter may be a relative path or a fully qualified path. In either case, the fully qualified path of the specified directory is calculated and stored as the current directory. 

 

Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

板凳

请问要设置为哪个目录才行,我设置为了D盘,但还是不能写入

CFilePath fp;
fp.DoModal();
::WritePrivateProfileString(_T("note"), _T("key"), fp.m_str, _T(".\\cfg.ini"));

m_str为获得的程序路径

3 楼

已经解决了,谢谢

4 楼

默认的路径,是在程序一开始运行时程序的路径.在运行过程中会发生改变,比如调用一个通用文件打开对话框,路径就发生变化了.你的二个程序的路径不同,但都用同样的相对路径去读取INI文件,所以不成功啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册