本帖最后由 1149 于 2018-10-4 21:55 编辑
SetRegistryKey(_T("应用程序向导生成的本地应用程序")); 这个函数会导致以后的读写会在注册表中而不是INI文件,如果你想在注册表中进行读写那么
就不用改变,如果你想在指定的文件夹内读写INI那么就必须注释掉这一句。
2,接下来的问题就是如何在指定的路径进行INI的读写呢,首先我们介绍一个CWINApp的成员变量CWinApp::m_pszProfileName,他是存放INI的文件名,默认是应用程序的文件名,所以接下来我们要把我们要读写的完整路径放入该变量,代码最好放在CWIApp的初始化函数里,如图
[mw_shl_code=applescript,true] delete m_pszProfileName;//清空字符串
m_pszProfileName = new TCHAR[MAX_PATH];//申请一个字符串数组
_tcscpy_s((TCHAR*)m_pszProfileName , MAX_PATH , _T("C:\\配置.ini"));//将你要操作的完整路径填入
WriteProfileString(_T("节"), _T("变量"), _T("变量内容"));//CWinApp有3个写INI我这里选择了写入字符串[/mw_shl_code]
3,读INI的话就更简单了,CWinApp::GetProfileString 直接这一句就搞定了,路径都不用写,是不是很简单,小伙伴们自己去测试吧[/hide] |
对于ini文件的读写还是调用api简单,一句代码搞定
//写ini配置文件
::WritePrivateProfileStringW(_T("地区"), _T("城市"), _T("北京"), _T("d:\\配置.ini"));
//读配置项
CString m_strCity;
::GetPrivateProfileStringW(_T("地区"), _T("城市"), _T("没找到城市信息"), m_strCity.GetBuffer(MAX_PATH), MAX_PATH, _T("d:\\配置.ini"));
AfxMessageBox(m_strCity);
//在这里必须ReleaseBuffer(),否则无法再后面进行字符串的连接
m_strCity.ReleaseBuffer();