用C语言实现MFC库函数GetPrivteProfileString

本文介绍如何将MFC中的GetPrivateProfileString函数用于读取.ini配置文件的功能移植到嵌入式系统中,并采用C语言实现。文中详细展示了通过自定义数据结构和函数来解析配置文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MFC中此函数GetPrivteProfileString可以用来读取配置文件.ini的函数,它在VS2008msdn中的定义是这样的:

GetPrivateProfileString Function

Retrieves a string from the specified section in an initialization file.

翻译过来就是返回初始化文件中特定区域的字符串。参数如下:

DWORD WINAPI GetPrivateProfileString(

  __in          LPCTSTR lpAppName,

  __in          LPCTSTR lpKeyName,

  __in          LPCTSTR lpDefault,

  __out         LPTSTR lpReturnedString,

  __in          DWORD nSize,

  __in          LPCTSTR lpFileName

);

第一个LPCTSTR类型的lpAppName是定值区间,第二个是要读的字符串的名,第三个默认值为NULL,第四个为返回值,返回读到的字符串,第五个设置第四个参数(字符串)的大小,第六个为初始化文件路径。

这里假设初始化文件如下:

[function]

func1 = init

func2 = paint

func3 = read

func4 = write

func5 = exit

[parameter]

para1 = void

para2 = GDI

para3 = file

para4 = string

para5 = handle

我们要读取func2的值那么读取方法就是

CString strVal;

DWORD size = 1000;

GetPraviteProfileString(_T("function"),_T("func2"),_T("Not Found"),strVal,GetBuffer(size),size,path);

_T("Not Found")为默认字符即没找到时返回的值path为文件路径。

然而当我们在移植程序到嵌入式系统时,这样的MFC函数是要不得的,我所使用的方法就是重写这个函数,用C语言写说到底就是字符串匹配的过程了,涉及到文件的就变成了FILEfstream了,这里选用FILE,看代码吧

下面是两个写入数据结构的函数,我的程序不能随机的读某个节点,只能一次性将节点全部读入数据结构

 

里存储,有更好的方法还望指教!!

从函数中可以看到in_buf是一行一行的读取到数据的所以对应的配置文件格式也要有所变化

[function]

func1

init

func2

paint

func3

read

func4

write

func5

exit

[parameter]

para1

void

para2

GDI

para3

file

para4

string

para5

handle

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值