在VB6中GetPrivateProfileString遇见的问题

其实是一段读取窗体位置的代码写在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才是,他什么都没给我返回。

用途作业,别推荐我换语言