天天挂茶馆

1149 发表于 2018-9-25 22:13:22

关于如何在MFC中读INI和写INI

本帖最后由 1149 于 2018-10-4 21:55 编辑

**** Hidden Message *****

SetRegistryKey(_T("应用程序向导生成的本地应用程序")); 这个函数会导致以后的读写会在注册表中而不是INI文件,如果你想在注册表中进行读写那么
就不用改变,如果你想在指定的文件夹内读写INI那么就必须注释掉这一句。


2,接下来的问题就是如何在指定的路径进行INI的读写呢,首先我们介绍一个CWINApp的成员变量CWinApp::m_pszProfileName,他是存放INI的文件名,默认是应用程序的文件名,所以接下来我们要把我们要读写的完整路径放入该变量,代码最好放在CWIApp的初始化函数里,如图

      delete m_pszProfileName;//清空字符串
      m_pszProfileName = new TCHAR;//申请一个字符串数组
      _tcscpy_s((TCHAR*)m_pszProfileName , MAX_PATH ,_T("C:\\配置.ini"));//将你要操作的完整路径填入
      WriteProfileString(_T("节"), _T("变量"), _T("变量内容"));//CWinApp有3个写INI我这里选择了写入字符串



3,读INI的话就更简单了,CWinApp::GetProfileString 直接这一句就搞定了,路径都不用写,是不是很简单,小伙伴们自己去测试吧

admin 发表于 2018-9-26 09:58:25

改------->该

太阳的味道 发表于 2019-1-7 17:51:12

本帖最后由 太阳的味道 于 2019-1-7 17:53 编辑

对于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();




q228662928 发表于 2019-6-16 13:25:12

支持一下,希望以后会更好

ms930602 发表于 2021-11-30 17:48:23

ini 改成大写INT就不认识了 0.0
页: [1]
查看完整版本: 关于如何在MFC中读INI和写INI