step 1: 在BOOL CMyApp::InitInstance()中添加如下代码来定义ini文件名:
------------------------------------------------------------------------
TCHAR szModuleName[MAX_PATH];
TCHAR *pszFileName = NULL;
// Setup INI path, Help path
if(GetModuleFileName(NULL, szModuleName, sizeof(szModuleName)))
{
if((pszFileName = _tcsrchr(szModuleName, '\\')) != NULL)
{
pszFileName++;
free((void*)m_pszProfileName);
free((void*)m_pszHelpFilePath);
lstrcpy(pszFileName, _T("MyFile.INI"));
m_pszProfileName = _tcsdup(szModuleName);
*pszFileName = _T('\0');
m_pszHelpFilePath =_tcsdup(szModuleName);
}
}
------------------------------------------------------------------------
step 2: 定义ini文件
---------------------
[SectionA]
SwitchA=1
SwitchB=0
......
[SectionB]
......
---------------------
step 3: 在需要访问配置文件某配置项内容时使用如下代码:
------------------------------------------------------------------------
#define SECTION_KEY _T("SectionA")
#define SWITCH_ON _T("SwitchA")
if (AfxGetApp()->GetProfileInt(SECTION_KEY, SWITCH_ON, 0) == 1)
s_bSwitchOn = TRUE;
else
s_bSwitchOn = FALSE;
------------------------------------------------------------------------
我们在编写程序的过程中,有很多要用到出始化,但有很多都写进了注册表,而我们在想修改或者查看的时候必须到注册表里去修改,而不是直接到一个程序目录下的ini文件里查看或者修改,怎么使可以直接生成的ini文件能写进Debug 呢?而不写进注册表.下面的程序可以帮助我们实现这个目的!!!!
// 这个GetModuleFileName() 的作用是得到当前目录下的**.exe文件,所以我们要把后缀去掉,直接用strcat()函数把它改长ini后缀.
//再清除Ini变量
加入上面的语句以后,我们就可以在需要的地方直接用:
当然在使用的时候要定义:
theApp = AfxGetApp();
然后直接用
theApp ->WriteProfileString( , ,)函数写入ini文件.
在需要读出的地方直接用
theApp ->GetProfileString (
当然在读取整数的时候,我们可以分别用
WriteProfileInt (
当你打开你的Debug 下的文件时,你可以看到一个*.ini文件了!!!!!!!!!!