我把你的程序修改了一下,现在是没有问题了,注意要指明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
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
1:
你用Recordset打开table1.dbf后在调用recordset.Openrecordset(sql)试试。2:
lpKeyName As Any
错误,此函数必须全部ByVal。Public Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long