其实是一段读取窗体位置的代码写在Form_load里
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 Long
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
Private Sub Form_Load()
Dim Form_top, Form_left, ReadIni, WData As String
ReadIni = String(256, 0)
If Dir(App.Path & "\config.ini") = "" Then
MsgBox "找不到配置文件,将新建新的配置文件"
WData = Form_Main.Top
WritePrivateProfileString "system", "top", WData, App.Path & "\config.ini"
WData = Form_Main.Left
WritePrivateProfileString "system", "left", WData, App.Path & "\config.ini"
End If
GetPrivateProfileString "system", "top", "NULL", ReadIni, 256, App.Path & "\config.ini"
Temp.Text = ReadIni
'MsgBox ReadIni
Form_top = Temp.Text
...
然后效果是这样的
config.ini如下
[system]
top=2250
left=2250
...
ini可以写入,同样一个读取失败,写入后记事本打开查看正常。
其他工程中GetPrivateProfileString 可以正常使用,引用都是复制WIN32API.TXT中的,非系统问题。
最不能理解的地方就是,即使是参数错了,应该返回NULL才是,他什么都没给我返回。
用途作业,别推荐我换语言