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")
繰り返しますが、この作業への呼び出しのほとんどは機能しますが、機能しないものもあり、頭を悩ませています。ありがとう!