http://blog.csdn.net/hgy413/article/details/6666374#
ini文件(Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。
1. 把信息写入系统的win.ini文件
BOOL WriteProfileString( LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串 LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节 LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键 )
2、从系统的win.ini文件中读取信息
DWORD GetProfileString( LPCTSTR lpAppName, // 节名 LPCTSTR lpKeyName, // 键名,读取该键的值 LPCTSTR lpDefault, // 若指定的键不存在,该值作为读取的默认值 LPTSTR lpReturnedString, // 一个指向缓冲区的指针,接收读取的字符串 DWORD nSize // 指定lpReturnedString指向的缓冲区的大小 )
UINT GetProfileInt( LPCTSTR lpAppName, // 同上 LPCTSTR lpKeyName, // 同上 INT nDefault // 若指定的键名不存在,该值作为读取的默认值 )
3.写入读取自己的ini
简单的INI例子:
[Service] Name=AutoRun Helper Description=200 ApplicationRootKey64=SoftwareWow6432NodeSepangAutoRun Modem [Registry] ServiceRootKey=SoftwareAutoRun Modem Service ApplicationRootKey=SoftwareSepangAutoRun Modem ApplicationRootKey64=SoftwareWow6432NodeSepangAutoRun Modem
下面示例显示它是如何生成的:
void XXXXX::OnBnClickedWriteIniBtn() { // ---------------------------------------- // 模拟写入一个config.ini // ---------------------------------------- // 得到exe执行路径. TCHAR tcExePath[MAX_PATH] = {0}; ::GetModuleFileName(NULL, tcExePath, MAX_PATH); // 设置ini路径到exe同一目录下 #ifndef CONFIG_FILE #define CONFIG_FILE (TEXT("Config1.ini")) #endif //_tcsrchr() 反向搜索获得最后一个'\'的位置,并返回该位置的指针 TCHAR *pFind = _tcsrchr(tcExePath, '\'); if (pFind == NULL) { return; } *pFind = '