词条 | GetPrivateProfileString |
释义 | GetPrivateProfileString意思是为初始化文件中指定的条目取得字串 。它是编辑语言中的一种函数结构。 函数原型DWORD GetPrivateProfileString(lpszSection, lpszKey, lpszDefault, lpszReturnBuffer, 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,指定的条目没有找到时返回的默认值。可设为空("") lpReturnedString String,指定一个字串缓冲区,长度至少为nSize 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"); count<<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目录本身。 其他在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 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。