Windows API ——WritePrivateProfileString——配置文件

 1 #pragma once
 2 
 3 class OperationConfig
 4 {
 5 public:
 6 
 7     OperationConfig(void);
 8     ~OperationConfig(void);
 9 
10     //设置配置文件的值
11     BOOL SetIniFile(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPCSTR lpValue);
12 
13     //获取配置文件字符串型的值
14     void GetIniFileStr(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPSTR lpRetString,DWORD dwSize,LPCSTR lpDefaultValue="");
15     
16     //获取配置文件整型的值
17     UINT GetIniFileInt(LPCTSTR lpPath,LPCSTR lpField,LPCSTR lpKey,INT nDefault=0);
18 
19 
20 };

 

 

 

 1 #include "StdAfx.h"
 2 #include "OperationConfig.h"
 3 
 4 OperationConfig::OperationConfig(void)
 5 {
 6 }
 7 
 8 OperationConfig::~OperationConfig(void)
 9 {
10 }
11 
12 /************************************************************************
13 功能描述 :SetIniFile ,写入配置文件
14 输入参数 :LPCWSTR lpPath, 配置文件名
15            LPCWSTR lpField,字段名
16            LPCWSTR lpKey,键名
17            LPCWSTR lpValue,值
18 输出参数 :无
19 返回值   :BOOL ,是否写入成功
20 ************************************************************************/
21 BOOL OperationConfig::SetIniFile(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPCSTR lpValue)
22 {
23 
24     BOOL isSuccess=FALSE;
25     isSuccess=::WritePrivateProfileString(lpField,lpKey,lpValue,lpPath);
26 
27     if (isSuccess==TRUE)
28     {
29     
30     }
31     else
32     {
33         AfxMessageBox("写入配置文件失败!");
34     }
35     return isSuccess;
36 
37 }
38 
39 
40 
41 
42 /************************************************************************
43 功能描述 :GetIniFileStr ,读取配置文件
44 输入参数 :LPCWSTR lpPath, 配置文件名
45            LPCWSTR lpField,字段名
46            LPCWSTR lpKey,键名
47            DWORD dwSize,长度
48 输出参数 :LPWSTR lpRetString,返回值
49            LPCWSTR lpDefaultValue,默认值
50 返回值   :无
51 ************************************************************************/
52 void OperationConfig::GetIniFileStr(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPSTR lpRetString,DWORD dwSize,LPCSTR lpDefaultValue)
53 {
54     DWORD dwRet=::GetPrivateProfileString(lpField,lpKey,lpDefaultValue,lpRetString,dwSize,lpPath);
55     if (dwRet  ==  0) //返回0表示失败
56     {
57         /*AfxMessageBox(L"读取配置文件失败!");*/
58     }
59 }
60 
61 
62 
63 /************************************************************************
64 功能描述 :GetIniFileInt ,读取配置文件
65 输入参数 :LPCWSTR lpPath, 配置文件名
66            LPCWSTR lpField,字段名
67            LPCWSTR lpKey,键名
68 输出参数 :INT nDefault,得到的整型值
69 返回值   :UINT,返回得到的整型值
70 ************************************************************************/
71 UINT OperationConfig::GetIniFileInt(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,INT nDefault)
72 {
73     UINT nStudAge=GetPrivateProfileInt(lpField,lpKey,nDefault,lpPath); 
74     //第三个参数为没找到键时返回的值。键没值则返回0
75     return nStudAge;
76 
77 }

 

API有两种配置文件的函数。

第一种,无路径的,默认读写的配置文件路径C:\Windows\win.ini

WriteProfileString(_T("appName"), _T("KeyName"), _T("Value"));

第二种,带路径的,只比第一个多一个参数,其余都一样

WritePrivateProfileString(_T("appName"), _T("KeyName"), _T("Value"),_T("D:\\test.ini"));

 

配置文件读取。第四个和第五个参数应该保持一致,注意MAX_PATH,两个必须取值一样,否则可能出错

    CString str;

    DWORD dwLen = GetPrivateProfileString(_T("appName"), _T("KeyName"), _T("DefaultValue"),str.GetBuffer(MAX_PATH),MAX_PATH,_T("D:\\test.ini"));

    str.ReleaseBuffer();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值