• c++配置文件.ini,GetPrivateProfileString( )WritePrivateProfileString( )


    最近换了新公司,开始做程序。之前没做过c++,用c++改写了一个c的socket程序。当时遇到一个问题:程序更改,如果需求变了,程序中的一些参数需要适当修改。当时公司的大牛说:“你可以写一个配置文件,到时直接更改配置文件就ok了”。配置文件?ini?没用过。今天有时间决定学习,顺便开始记一些笔记。

    网上资料很多,我水平有限,把自己一步步得到的东西写下来,一是为了自己日后看方便,二是方便读者应用。话不多说开搞。

    我的实验环境是vs2013 c++。

    读配.ini配置文件:

    DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);

    分析:

    返回值 :

    DWORD ---------接收缓冲区的大小(long类型)

    型参:

    LPCTSTR lpAppName ---------- INI文件中的一个字段名,这个字串不区分大小写。
    LPCTSTR lpKeyName ---------- lpAppName 下的一个键名,也就是里面具体的变量名,这个字串不区分大小写。

    LPCTSTR lpDefaut ----------------如果没有其前两个参数值,则将此值赋给变量。指定的条目没有找到时返回的默认值。可设为空("")。
    LPSTR lpReturnedString -------接收INI文件中的值的CString对象,指定一个字串缓冲区,长度至少为nSize。

    DWORD nSize ---------------------指定装载到lpReturnedString缓冲区的最大字符数量
    LPCTSTR lpFileName -----------完整的INI文件路径名

    示例:

    [cpp] view plain copy
     
    1. #include <iostream>  
    2. #include <windows.h>//这个头文件一定要添加,否则GetPrivateProfileString(...)函数无法使用  
    3.   
    4. using namespace std;  
    5.   
    6. void main() {  
    7.     char ip[16];  
    8.     char add[20];  
    9.     char net[20];  
    10.     char set[20];  
    11.       
    12.     DWORD num;//long类型,可以省略不写,如下几行。  
    13.     num = GetPrivateProfileString("NETWORK", "ServerIP", "", ip, sizeof(ip), "e:\test.ini");  
    14.     GetPrivateProfileString("NETWORK", "LocalHost", "", add, sizeof(add), "e:\test.ini");  
    15.     GetPrivateProfileString("NETSET", "Net", "", net, sizeof(net), "e:\test.ini");  
    16.     GetPrivateProfileString("NETSET", "NetHost", "", set, sizeof(set), "e:\test.ini");  
    17.   
    18.     cout << num << endl;  
    19.     cout << "----------------- ";  
    20.       
    21.     cout << ip << endl;  
    22.     cout << add << endl;  
    23.     cout << net << endl;  
    24.     cout << set << endl;  
    25.       
    26.     cout << "------------ ";  
    27.       
    28.     system("pause");  
    29. }  


    写.ini配置文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);

    示例:

    [cpp] view plain copy
     
    1. #include <iostream>  
    2. #include <windows.h>//这个头文件一定要添加,否则GetPrivateProfileString(...)函数无法使用  
    3.   
    4. using namespace std;  
    5.   
    6. void main() {  
    7.           
    8.     WritePrivateProfileString("Device", "Name", "PC", "e:\test2.ini");  
    9.           
    10.     system("pause");  
    11. }  

  • 相关阅读:
    CLSCompliantAttribute
    杂言
    批处理修改目录的隐藏属性
    unittest基本用法
    unittest跳过用例
    MySQL流程控制结构
    MySQL视图
    MySQL函数
    unittest断言 & 数据驱动
    PLSQL
  • 原文地址:https://www.cnblogs.com/shikamaru/p/7646559.html
Copyright © 2020-2023  润新知