我把你的程序修改了一下,现在是没有问题了,注意要指明byVal,VB默认是以byRef来传参的。祝编程愉快。
Private 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 LongFunction GetSysIni(ByVal section As String, ByVal key As String)
    Dim retVal As String, AppName As String, worked As Integer
    retVal = String$(255, 0)
    retVal = Space(255)
    worked = GetPrivateProfileString(section, key, "", retVal, Len(retVal), "c:\1.ini")    If worked = 0 Then
        GetSysIni = "未知"
    Else
        GetSysIni = Left(retVal, InStr(retVal, Chr(0)) - 1)
    End If
End FunctionPrivate Sub Form_Load()
    i = GetSysIni("ALARM", "TimeOut")  
End Sub