有一个关于ini文件和getPrivateProfileString的新问题 - 令人沮丧的是他们已经在一起工作了大约3年,而在过去的几天里,有些东西导致他们吓坏了,并且时不时地返回我正在寻找的其中一个领域没什么。我已经与维护服务器的人进行了核实,没有任何改变,他们知道。
我查看了this answer,尝试从文件中删除BOM,并在第一行添加额外的换行符 - 两者都无效。
奇怪的是,每次都没有相同的部分/组合键,也不是所有部分都相同 - 我注意到这发生在目前为止来自4个不同部分的键,通常我正在加载的只有一个键失败,尽管一次运行最多只有3个(大约20个)。我很难过。
以下是调用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")
再次,大多数对这项工作的调用,但有些人没有,而且它正在努力。谢谢!
答案 0 :(得分:0)
最后,最终工作的是我们使用服务器名称而不是DFS路径(即。\\fileserver01\Software\Config.ini
而不是\\customDFSPath\OtherDir\Config.ini
)设置ini文件的路径。显然他们最近升级到了Windows Server 2012 R2,并且有人提到DFS系统存在速度慢,这导致了这个问题。