2024年2月2日发(作者:)

WriteProfileString 函数 , WritePrivateProfileString 函数,

WritePrivateProfileStruct 函数,操作INI

/chinabinlang/article/details/6424885WriteProfileString 函数:

背景: 调用了WriteProfileString, 却不知道该配置信息到底是注册表中,还是在INI文件中. 经过在网上查询, 在windows的目录下找到与程序名同名的INI文件.

原因:

1/调试跟踪到CWinApp::WriteProfileString中间,发现了这个函数:

return ::WritePrivateProfileString(lpszSection, lpszEntry,

lpszValue,m_pszProfileName);

然后根据m_pszProfileName的名字(因为我的应用程序名字为)查找,最后在C:/WINDOWS下查找到了的文件,打开正好;

2/ 事实上WriteProfileString可以往注册表写也可往INI文件写,关键是SetRegistryKey,如果执行了

SetRegistryKey,那么就会写往注册表,如果没有,就会写往INI文件,请看 MSDN 说明:

3/如果你要写文件,用WritePrivateProfileString吧,不要

用那个:///s/blog_

WritePrivateProfileString 函数:

GetPrivateProfileString函数对应;WritePrivateProfileStruct

函数

#include<iostream>

#include <windows.h>

using namespace std;

struct Data

{

int n;

char c[260];

};

int main()

{

Data d1,d2;

d1.n=10;

strcpy(d1.c,"hello");

WritePrivateProfileStruct( "MI", "DATA", &d1,

sizeof(Data), "f:" );//mark

GetPrivateProfileStruct( "MI", "DATA", &d2,

sizeof(Data), "f:" );//mark

cout<<d2.n<<endl<<d2.c<<endl;

return 0;

}转一篇文章:VC操作INI文件

INI文件简介在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化。将一些信息写入INI文件(initialization file)中,可完成简单的持久化支持。Windows提供了API接口用于操作INI文件,其支持的INI文件格式一般如下:===============================[Section1]Key11=value11Key12=value12[Section2]Key21=[SectionN]KeyN1=valueN1KeyN2=valueN2===============================一般一个INI文件可有N个节,每节可有n个键名及值对应,每个键名及其值以等式形式占一行。一般键的名称可任取,不过建议用有意义的字符及词构成。值一般可为整数和字符串,其它类型要进行转换。常见的系统配置文件:C:/:/WINDOWS/:/WINDOWS/:

/WINDOWS/:/WINDOWS/Resources/Themes/Windows 注意,字符串存贮在INI文件中时没有引号;key和value之间的等号前后不容空格;注释以分号“;”开头。 VC中操作INI文件的API(1)操作系统配置文件的函数:函数名功能GetProfileSection读取中指定节lpAppName中所有键名及其值。lpReturnedString字符串形式如下:Key1=Value1/0Key2=Value2/0…KeyN=ValueN/0/0GetProfileString读取中指定节lpAppName中键名为lpKeyName对应变量的字符串值。GetProfileInt读取中指定节lpAppName中键名为lpKeyName对应变量的整数值。 WriteProfileSection写(替换)中指定节lpAppName中的键值。lpString字符串形式同GetProfileSection中的lpReturnedString。WriteProfileString写(替换)中指定节lpAppName中键名为lpKeyName对应变量的字符串值。