tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。