複製鏈接
請複製以下鏈接發送給好友

GetPrivateProfileString

鎖定
GetPrivateProfileString是一個計算機函數,功能是為初始化文件中指定的條目取得字串,是編輯語言中的一種函數結構。
外文名
GetPrivateProfileString
含    義
取得初始化文件中指定的條目字串
上    屬
編輯語言
屬    性
一種函數結構

GetPrivateProfileString函數原型

DWORD GetPrivateProfileString(lpszSection, lpszKey, lpszDefault,lpReturnedString, cchReturnBuffer, lpszFile)

GetPrivateProfileStringVB聲明

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
説明
為初始化文件中指定的條目取得字串

GetPrivateProfileString返回值

返回值 返回值
Long,複製到lpReturnedString緩衝區的字節數量,其中不包括那些NULL中止字符。如lpReturnedString緩衝區不夠大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName為NULL,則返回nSize-2)

GetPrivateProfileString參數表

參數 類型及説明
lpApplicationName String,欲在其中查找條目的小節名稱。這個字串不區分大小寫。如設為vbNullString,就在lpReturnedString緩衝區內裝載這個ini文件所有小節的列表。
lpKeyName String,欲獲取的項名或條目名。這個字串不區分大小寫。如設為vbNullString,就在lpReturnedString緩衝區內裝載指定小節所有項的列表
lpDefault String,指定的條目沒有找到時返回的默認值。可設為空("")
lpReturnedString String,指定一個字串緩衝區,長度至少為nSize
nSize Long,指定裝載到lpReturnedString緩衝區的最大字符數量
lpFileName String,初始化文件的名字。如沒有指定一個完整路徑名,windows就在Windows目錄中查找文件

GetPrivateProfileString註解

lpKeyName參數為vbNullString,那麼lpReturnedString緩衝區會載入指定小節所有設置項的一個列表。每個項都用一個NULL字符分隔,最後一個項用兩個NULL字符中止。也請參考GetPrivateProfileInt函數的註解

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),  "X:\XXX\Server.ini");
文件名必須是絕對路徑,如果傳入相對路徑,則默認路徑為C:\windows\ [1] 

GetPrivateProfileString補充説明

在vb的api文本查看器中複製的聲明為:Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
參考資料