zoukankan      html  css  js  c++  java
  • GetPrivateProfileString

    
    

    参考:

    1. https://blog.csdn.net/tunnel115/article/details/3081340

    2. https://blog.csdn.net/hopedream2008/article/details/8113798

    看完以下博客的一个小例子:

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    #include "stdafx.h"
    #include"afx.h"
    #include"iostream"
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        CString strStudName;
        GetPrivateProfileString(_T("StudentInfo"), _T("Name"), _T("默认姓名"), strStudName.GetBuffer(MAX_PATH), MAX_PATH, _T("D:\aa\ConsoleApplication4\Debug\student.ini"));
        std::cout << strStudName << std::endl;
        system("pause");
        return 0;
    }
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    ini 里面文件:

    [StudentInfo]
    Name = Aaron

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    控制台运行结果:



    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++







    有关GetPrivateProfileString的使用方法
    ======================================================

    函数返回值为string的长度(long型),而从ini文件获得的字符串则保留在目的缓冲器中

    DWORD GetPrivateProfileString(
    LPCTSTR lpAppName, //配置文件的section名
    LPCTSTR lpKeyName, //配置文件的key名
    LPCTSTR lpDefault, 
    LPTSTR lpReturnedString, 
    DWORD nSize, 
    LPCTSTR lpFileName 
    ); 

      其中各参数的意义: 

       前二个参数与 WritePrivateProfileString中的意义一样.

       lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量. 

       lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.

       nSize : 目的缓存器的大小.

       lpFileName : 是完整的INI文件名.


    下面是一个常见的出错原因:
    GetPrivateProfileString怎么总是读不出来
    --------------------------------------------------------------------------------

    *.INI内容
    [NETWORK]
    ServerIP=100.100.100.53
    程序:
    main()
    {
    char ip[16];
    DWORD num=0;
    num=GetPrivateProfileString("NETWORK","ServerIP,"",
           ip,sizeof(ip),
       "Server.ini");
    cout<<num<<endl<<ip<<endl;
    }

    --------

    num=GetPrivateProfileString("NETWORK","ServerIP,"",
           ip,sizeof(ip),
       "Server.ini");
    Server.ini这个文件放在哪里的?要放在与应用程序相同的目录下应该用".//server.ini"
    你看看是不是没有找到这个INI文件

    -----------

    VC中调试时,server.ini放在工程目录中;程序单独运行时,则需要放在跟exe同一个目录中。
    因为从VC里启动程序,VC将程序的工作目录初始化为工程目录,而不是debug或release目录本身。
     
    
    

     

     

    函数作用:从INI文件中读入程序中的变量.


    1.所用的WINAPI函数原型为:DWORD GetPrivateProfileString(
    LPCTSTR lpAppName,
    LPCTSTR lpKeyName,
    LPCTSTR lpDefault,
    LPTSTR lpReturnedString,
    DWORD nSize,
    LPCTSTR lpFileName
    );
    其中各参数的意义:
    前二个参数与 WritePrivateProfileString中的意义一样.
    lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
    lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
    nSize : 目的缓存器的大小.
    lpFileName : 是完整的INI文件名.


    2.具体使用方法:现要将上一步中写入的学生的信息读入程序中.CString strStudName;
    int nStudAge;
    GetPrivateProfileString("StudentInfo","Name","默认姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\stud\student.ini");
    执行后 strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".  

     

    3.读入整型值要用另一个WINAPI函数:
    UINT GetPrivateProfileInt(
    LPCTSTR lpAppName,
    LPCTSTR lpKeyName,
    INT nDefault,
    LPCTSTR lpFileName
    );
      这里的参数意义与上相同.使用方法如下:
    nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\stud\student.ini");

         

    
    
    





  • 相关阅读:
    UPC-5930 Rest Stops(水题)
    UPC-6199 LCYZ的道路(贪心)
    UPC-6198 JL的智力大冲浪(简单贪心)
    POJ 3279 Filptile dfs
    hrbust 1621 迷宫问题II 广搜
    HDU 1045 dfs + 回溯
    优先队列基本用法
    树。森林。和二叉树之间的转换
    POJ 2689 筛法求素数
    哈理工OJ 1328
  • 原文地址:https://www.cnblogs.com/MCSFX/p/12659157.html
Copyright © 2011-2022 走看看