Dim str As String
str = comuser.Text
Dim sreaduser As String
sreaduser=String(4095, 0)
dumy = GetPrivateProfileString(str,"user","*error*",sreaduser, 4095,"c:\实验\jm\vb.ini")

解决方案 »

  1.   

    楼上说的对要为字符串分配空间
    我以前写的读写Ini的函数
    Option Explicit
    Private Declare Function WritePrivateProfileString _
            Lib "kernel32" Alias "WritePrivateProfileStringA" _
            (ByVal lpApplicationName As String, _
            ByVal lpKeyName As Any, _
            ByVal lpString As Any, _
            ByVal lpFileName As String) As Long
    Public 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
    'FileName:Ini文件
    'PathName:小节名
    'KeyName:值名
    'WriteValue:值
    Public Function WriteIni(FileName As String, _
            PathName As String, _
            KeyName As String, _
            WriteValue As String) As Long
        Dim Rc As Long
        
        Rc = WritePrivateProfileString(PathName, KeyName, WriteValue, FileName)
        
        WriteIni = Rc
        
    End Function'FileName:Ini文件
    'PathName:小节名
    'KeyName:值名
    'BackValue:返回值
    'Default:默认字符
    Public Function ReadIni(FileName As String, _
            PathName As String, _
            KeyName As String, _
            BackValue As String, _
            Optional Default As String = "缺省") As Long
        Dim Rc As Long
        Dim TempNum As String
        Dim TempStr As String
        
        TempStr = String$(255, Chr$(0))
        TempNum = 255
        
        Rc = GetPrivateProfileString(PathName, KeyName, Default, TempStr, TempNum, FileName)
        
        If Rc <> 0 Then
            BackValue = Left$(TempStr, TempNum)
            
        End If
        
        ReadIni = Rc
        
    End Function
      

  2.   

    用我的也行
    Option Explicit
    '写INI文件的API函数,分别是读和写
    Public 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
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal AppName As String, ByVal KeyName As String, ByVal keydefault As String, ByVal filename As String) As Long'读取
    Public Function myReadINI(ByVal inifile As String, ByVal inisection As String, ByVal inikey As String, ByVal iniDefault As String) As String
        Dim lpApplicationName As String
        Dim lpKeyName As String
        Dim lpDefault As String
        Dim lpReturnedString As String
        Dim nSize As Long
        Dim lpFileName As String
        Dim retval As Long
        Dim filename As String
        Dim strtemp As String
        lpDefault = Space$(254)
        lpDefault = iniDefault
        lpReturnedString = Space$(254)
        nSize = 254
        lpFileName = inifile
        lpApplicationName = inisection
        lpKeyName = inikey
        filename = lpFileName
        retval = GetPrivateProfileString(lpApplicationName, lpKeyName, lpDefault, lpReturnedString, nSize, lpFileName)
        strtemp = Trim(lpReturnedString)
        myReadINI = Left(strtemp, Len(strtemp) - 1)
      End Function'写入
    Public Function myWriteINI(ByVal inifile As String, ByVal inisection As String, ByVal inikey As String, ByVal Info As String) As String
        Dim retval As Long
        retval = WritePrivateProfileString(inisection, inikey, Info, inifile)
        myWriteINI = LTrim$(Str$(retval))
    End Function