現在、Visual Studio 2005 (VB2005) を使用して開発しています。
INIファイルのキーを指定して値を取得する目的で以下のメソッドを作成しました。
ファイルもキーも存在するのですが、値を取得する事が出来ずにデフォルト値の"bbb"が設定されてしまいます。
原因がまったくわからないのですが、ご教授願えますでしょうか。
Private Function GetKeyOfIniFile(ByVal key As String)
Dim mIniFilePath = My.Computer.FileSystem.SpecialDirectories.Desktop & "\common.ini"
Dim dKeyVal As String = ""
If File.Exists(mIniFilePath) = True Then
Dim dValue As String = "aaa"
Dim tmp As Long = GetPrivateProfileString("common", "ComDataDir", "bbb", dValue, 1024, mIniFilePath)
dKeyVal = dValue
Else
'ファイルが存在しない!
End If
GetKeyOfIniFile = dKeyVal
End Function
==INIファイルの中身==============
[common]
ComDataDir=C:\
とりあえず、GetPrivateProfileString の Declare部分を
ここに書き込んだ方がいいと思う
VB6での書き方と.NETでの書き方は違うが、ここを間違う人が多いっぽい
(変数のサイズだけの問題じゃないので、私も昔は苦労したが…)
参考URL:
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/special/sp06_GetPrivateProfileString.html