-
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,指定的條目沒有找到時返回的默認值。可設為空("")
nSize Long,指定裝載到lpReturnedString緩衝區的最大字符數量
lpFileName String,初始化文件的名字。如沒有指定一個完整路徑名,windows就在Windows目錄中查找文件
GetPrivateProfileString註解
如lpKeyName參數為vbNullString,那麼lpReturnedString緩衝區會載入指定小節所有設置項的一個列表。每個項都用一個NULL字符分隔,最後一個項用兩個NULL字符中止。也請參考GetPrivateProfileInt函數的註解
GetPrivateProfileString用法
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");
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
- 參考資料
-
- 1. MSDN上關於此方法的介紹 .MSDN[引用日期2019-05-08]