0

ini ファイルと getPrivateProfileString で新たな問題が発生 - イライラするのは、彼らが約 3 年間一緒にうまく機能してきたことです。ここ数日で、何かがおかしくなり、時々何も返されません。私が探しているフィールドの。サーバーを維持している人々に確認しましたが、彼らが認識している変更はありません。

私はこの回答を見て、ファイルから BOM を削除し、最初の行として余分な改行を追加しようとしましたが、どちらも機能しません。

奇妙なことは、毎回同じセクション/キーの組み合わせで発生するわけではなく、すべてのセクションが同じではないことです.これまでのところ、4つの異なるセクションのキーでこれが発生することに気付きました. 1回の実行で最大3つ(約20のうち)でしたが、ロードしているキーの1つです。私はかなり困惑しています。

GetPrivateProfileString を呼び出すコードは次のとおりです。

Private Declare Unicode Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringW" (ByVal lpApplicationName As String, _
ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Int32, _
ByVal lpFileName As String) As Int32

Public Overloads Shared Function INIRead(ByVal INIPath As String, _
ByVal SectionName As String, ByVal KeyName As String, _
ByVal DefaultValue As String) As String
        Dim n As Int32
        Dim sData As String
        sData = Space$(1024)
        n = GetPrivateProfileString(SectionName, KeyName, DefaultValue, _
        sData, sData.Length, INIPath)
        If n > 0 Then
            INIRead = sData.Substring(0, n)
        Else
            INIRead = ""
        End If
    End Function

' elsewhere in the code...
Dim db_conn as String
db_conn = INIRead(iniFile, "DATABASE", "SecurityDB")

繰り返しますが、この作業への呼び出しのほとんどは機能しますが、機能しないものもあり、頭を悩ませています。ありがとう!

4

1 に答える 1