Win32 init操作

Posted 不会写代码的丝丽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win32 init操作相关的知识,希望对你有一定的参考价值。

前言

init是文件时微软提供一种轻量级数据存储方式,对于新版的应用文档提示应使用注册表。

我们首先看看init文件的格式:
在这里插入图片描述

语法比较简单

  1. ;xxxxxx 注释
  2. [xxxx] 表示某个节
  3. xxx=yyy

我们做下语法总结如下:

[section]
key=value
[section2]
key=value

WritePrivateProfileStringA 文档

BOOL WritePrivateProfileStringA(
  LPCSTR lpAppName,
  LPCSTR lpKeyName,
  LPCSTR lpString,
  LPCSTR lpFileName
);

lpAppName: 节名 不区分大小写
lpKeyName: key名 如果为空那么会删除这个节下面的所有数据
lpString: value数值 如果为空那么删除这个key值

lpFileName init 所在文件 这里注意 "./MyInit.ini""MyInit.ini"表示不同目录。

"./MyInit.ini"表示当前进程所在目录的/MyInit.ini文件
"MyInit.ini" 表示的c:/windows/MyInit.ini

我们来看一个小案例

void CMFCApplication1Dlg::OnBnClickedButton1()
{
	//写入到Windows 的win.ini文件,需要考虑权限
	/*BOOL bRet = ::WriteProfileString(TEXT("我的自定义节名"),TEXT("我的自定义KEY名"), TEXT("我的自定义VALUE名"));
	if (!bRet)
	{
		::AfxMessageBox("写入WriteProfileString失败");
	}*/


	BOOL bRet = ::WritePrivateProfileString(
		TEXT("我的自定义节名"),//节名 不区分大小写
		TEXT("我的自定义KEY名"),//key 数值,如果为空那么删除整个节下面的所有key和value
		TEXT("我的自定义VALUE名"),//value 数值,如果为null 那么删除当前key
		"./MyInit.ini"//写入到那个文件夹,如果直接写 "MyInit.ini"相对目录为c:/Windows 需要考虑权限,你应该写"./MyInit.ini"是相对于程序目录
	);
	if (!bRet)
	{
		::AfxMessageBox("写入WritePrivateProfileString失败");
	}
	
	bRet = ::WritePrivateProfileString(
		TEXT("我的自定义节名"),//节名 不区分大小写
		TEXT("我的自定义KEY名2"),//key
		TEXT("我的自定义VALUE名2"),//value
		"./MyInit.ini"//写入到那个文件夹,如果直接写 "MyInit.ini"相对目录为c:/Windows 需要考虑权限,你应该写"./MyInit.ini"是相对于程序目录
	);
	
	 if (!bRet)
	{
		::AfxMessageBox("写入WritePrivateProfileString失败");
	}
	//
	//bRet = ::WritePrivateProfileString(
	//	TEXT("我的自定义节名"),//节名 不区分大小写
	//	NULL,//key 为空删除这个节下面的所有东西
	//	TEXT("我的自定义VALUE名2"),//value
	//	"./MyInit.ini"//写入到那个文件夹,如果直接写 "MyInit.ini"相对目录为c:/Windows 需要考虑权限,你应该写"./MyInit.ini"是相对于程序目录
	//);

	//if (!bRet)
	//{
	//	::AfxMessageBox("写入WritePrivateProfileString失败");
	//}

}

在这里插入图片描述

以上是关于Win32 init操作的主要内容,如果未能解决你的问题,请参考以下文章

win32编程里,ransMessage()和DispatchMessage()是干嘛的

win32是啥意思

python将文本转换成语音的代码

libcurl.dll丢失怎么办 win10

acer win10 笔记本的libcurl.dll丢失

我可以在片段中构建操作栏吗?