タイトル | : Re^6: INI ファイルへの読み書き |
記事No | : 1041 |
投稿日 | : 2004/08/18(Wed) 14:58 |
投稿者 | : 花ちゃん |
> 引数に渡したデータが破壊されてしまうようです。1回目のWritePrivateProfileString関数の > 呼び出しで変数IniFileNameの中身が破壊され、2回目に指定するパスは異なったものになります。 > #過去に別所で同様の問題があがっていたので実験したことがあります。
フォローありがとうございます。 テストして見たら上記現象が確認できました。 私も理解不足なのですが、今回の事は、通常のAPI関数でも同様の現象はおきるのでしょうか?
取り敢えず、下記のように宣言を変えて試して見たら正常に読み書きができました。 UPしてあるのも修正しておきます。
Imports System.Runtime.InteropServices
<DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)> _ Public Shared Function GetPrivateProfileString _ (ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Integer, _ ByVal iniFilename As String) As Integer End Function
<DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)> _ Public Shared Function WritePrivateProfileString _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Integer End Function
<DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)> _ Public Shared Function GetPrivateProfileInt _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal nDefault As Integer, _ ByVal lpFileName As String) As Integer End Function
|