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");

         

    
    
    





  • 相关阅读:
    MVC模式 与 Model2模型 介绍
    通过Servlet获取初始化参数
    《算法竞赛入门经典》学习笔记 2.3 文件操作
    《C++ Primer Plus》学习笔记 2.1.1 main()函数
    Codeforces Round #359 (Div. 2) C. Robbers' watch 搜索
    Github Pages建立个人博客
    《算法竞赛入门经典》第一章 程序设计入门 习题
    《C++ Primer Plus》学习笔记 第1章 预备知识
    在C#代码中应用Log4Net(一)简单使用Log4Net
    NHibernate实例
  • 原文地址:https://www.cnblogs.com/MCSFX/p/12659157.html
Copyright © 2011-2022 走看看