タイトル : Re^5: INI ファイルへの読み書き 投稿日 : 2004/08/18(Wed) 13:17 投稿者 : よねKEN 参照先 : http://www5b.biglobe.ne.jp/~yone-ken/
> としてみたところわかったのですが、どうもWritePrivateProfileStringでIniFileNameが変わって し ま > うみた > いなのです。 > 実行すると > [Form1Text] > Text=Form1 > とかかれたCU.iniと > > [Form1Point] > Xpos=176 > Ypos=176 > [Form1Size] > Width=418 > Height=338 > とかかれた拡張子なしCU > > が出力されてしまいます IniFileNameに指定されているパスに全角が含まれていませんか? (CU.ini→CUと変化している点から見ると全角が4文字含まれているような気がします) APIでString型を扱う場合、本来のC言語での定義に従ったAPI宣言をしないと 引数に渡したデータが破壊されてしまうようです。1回目のWritePrivateProfileString関数の 呼び出しで変数IniFileNameの中身が破壊され、2回目に指定するパスは異なったものになります。 #過去に別所で同様の問題があがっていたので実験したことがあります。 手前味噌ですが、下記にAPIの宣言方法とGetPrivateProfileString関数で日本語パスを扱った 場合の問題に対する実験をした情報を載せています。(WritePrivateProfileStringでも考え方は同じ) [特集6] GetPrivateProfileStringにみるAPIの使用方法 hhttp://www5b.biglobe.ne.jp/~yone-ken/VBNET/special/sp06_GetPrivateProfileString.html [Ref2] GetPrivateProfileString関数の様々な宣言法によるWin2000、Win98での実行結果の成否 hhttp://www5b.biglobe.ne.jp/~yone-ken/VBNET/Reference/ref2_GetPrivateProfileString.html |