GetPrivateProfileString是一個計算機函式,功能是為初始化檔案中指定的條目取得字串,是編輯語言中的一種函式結構。
基本介紹
函式原型,VB聲明,返回值,參數表,註解,用法,其他,
函式原型
DWORD GetPrivateProfileString(lpszSection, lpszKey, lpszDefault,lpReturnedString, cchReturnBuffer, lpszFile)
VB聲明
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
說明
為初始化檔案中指定的條目取得字串
返回值
Long,複製到lpReturnedString緩衝區的位元組數量,其中不包括那些NULL中止字元。如lpReturnedString緩衝區不夠大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName為NULL,則返回nSize-2)
參數表
參數 類型及說明
lpApplicationName String,欲在其中查找條目的小節名稱。這個字串不區分大小寫。如設為vbNullString,就在lpReturnedString緩衝區內裝載這個ini檔案所有小節的列表。
lpKeyName String,欲獲取的項名或條目名。這個字串不區分大小寫。如設為vbNullString,就在lpReturnedString緩衝區內裝載指定小節所有項的列表
lpDefault String,指定的條目沒有找到時返回的默認值。可設為空("")
nSize Long,指定裝載到lpReturnedString緩衝區的最大字元數量
lpFileName String,初始化檔案的名字。如沒有指定一個完整路徑名,windows就在Windows目錄中查找檔案
註解
如lpKeyName參數為vbNullString,那么lpReturnedString緩衝區會載入指定小節所有設定項的一個列表。每個項都用一個NULL字元分隔,最後一個項用兩個NULL字元中止。也請參考GetPrivateProfileInt函式的註解
用法
函式返回值為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\
其他
在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