第一个问题:我认为可能是你语法使用错误。
第二个问题:我不大懂你的意思,但我觉得你没注意程序中的读写与ini中的变化先后关系。

解决方案 »

  1.   

    Dim m As Long
    m = WritePrivateProfileString("Study", "process", "自己要写入的内容", ini文件的绝对路径)
      

  2.   

    Dim n As Long
    n = GetPrivateProfileString("Study", "process", "",str, Len(str), ini的path) 
    其中str是string变量
      

  3.   

    #If Win32 Then
       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 Integer, ByVal lpFileName As String) As Integer
       Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal Appname As String, ByVal keyName As Any, ByVal NewString As Any, ByVal FileName As String) As Integer
       
       Private Declare Function GetPrivateProfileStringByKeyName& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName$, ByVal lpszKey$, ByVal lpszDefault$, ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, ByVal lpszFile$)
       Private Declare Function GetPrivateProfileStringKeys& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName$, ByVal lpszKey&, ByVal lpszDefault$, ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, ByVal lpszFile$)
       Private Declare Function GetPrivateProfileStringSections& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName&, ByVal lpszKey&, ByVal lpszDefault$, ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, ByVal lpszFile$)
       Private Declare Function WritePrivateProfileStringByKeyName& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lplFileName As String)
       Private Declare Function WritePrivateProfileStringToDeleteKey& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Long, ByVal lplFileName As String)
       Private Declare Function WritePrivateProfileStringToDeleteSection& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Long, ByVal lpString As Long, ByVal lplFileName As String)
    #Else
       Private Declare Function GetPrivateProfileString Lib "kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
       Private Declare Function WritePrivateProfileString Lib "kernel" (ByVal Appname As String, ByVal keyName As Any, ByVal NewString As Any, ByVal FileName As String) As Integer
       
       Private Declare Function GetPrivateProfileStringByKeyName& Lib "kernel" (ByVal lpApplicationName$, ByVal lpszKey$, ByVal lpszDefault$, ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, ByVal lpszFile$)
       Private Declare Function GetPrivateProfileStringKeys& Lib "kernel" (ByVal lpApplicationName$, ByVal lpszKey&, ByVal lpszDefault$, ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, ByVal lpszFile$)
       Private Declare Function GetPrivateProfileStringSections& Lib "kernel" (ByVal lpApplicationName&, ByVal lpszKey&, ByVal lpszDefault$, ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, ByVal lpszFile$)
       Private Declare Function WritePrivateProfileStringByKeyName& Lib "kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lplFileName As String)
       Private Declare Function WritePrivateProfileStringToDeleteKey& Lib "kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Long, ByVal lplFileName As String)
       Private Declare Function WritePrivateProfileStringToDeleteSection& Lib "kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As Long, ByVal lpString As Long, ByVal lplFileName As String)
    #End IfPrivate iSuccess As Integer
    Private iNullOffset As IntegerPublic Function Rtv_Ini_Data$(ini_File$, ini_Section$, ini_Entry$)
            ' rtv_ini_data("XXX.INI","ENVIRONMENT","PATH")
            
            
    On Error GoTo handleReadIniDataErr        Dim temp_string As String
            
            Rtv_Ini_Data$ = ""
            
            Section$ = ini_Section$
            Entry$ = ini_Entry$
            DefaultValue$ = "<未知>"
            EntryValue$ = Space$(1000)
            EntryValueSize = 1000
            
            x% = GetPrivateProfileString(Section$, Entry$, DefaultValue$, EntryValue$, EntryValueSize, ini_File$)
            'If x% = 0 Then
            '    box_msg$ = " 非合法性 -> " + Section$ + "/" + Entry$
            '    messagebox frmTestMain.hwnd, box_msg$, 16, "读入错误"
            'End If
            
            Len_string = Len(Trim$(EntryValue$)) - 1
            temp_string = Left$(EntryValue$, Len_string)
            Rtv_Ini_Data$ = temp_string
            
            EntryValue$ = ""
            
            Exit Function
            
            
    handleReadIniDataErr:
            'messagebox frmTestMain.hwnd, Err.DescriptionEnd Function
    Public Function Upd_Ini_Data$(ini_File$, ini_Section$, ini_Entry$, EntryValue$)
            ' upd_ini_data("XXX.INI","[ENVIRONMENT]","PATH=", "C:\")On Error GoTo handleUpdateIniDataErr
            
            Upd_Ini_Data$ = ""
            
            Section$ = ini_Section$
            Entry$ = ini_Entry$
            
            x% = WritePrivateProfileString(Section$, Entry$, EntryValue$, ini_File$)
            'If x% = 0 Then
            '    box_msg$ = " 非合法性字段 -> " + Section$ + "/" + Entry$
            '    messagebox frmTestMain.hwnd, box_msg$, 16, "写入错误"
            'End If
            
            Exit Function
            handleUpdateIniDataErr:
            'messagebox frmTestMain.hwnd, Err.Description
            
    End Function