投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/7/12 01:46:34
> GetPrivateProfileStringA
~A (ANSI)版では無く、~W (Unicode)版を使うことをお奨めします。


Windows 98 や Me には、W版が無く、A版しか実装されていませんでした。
そのため、VB6 時代は(9x系をサポートする必要があるため)A版が多用されていました。

しかし NT/2000/XP/Vista/2003/2008 は、W と A の両方が実装されています。
しかも A 版は、 W 版を文字コード変換することで実装されているため、W 版に比べて
パフォーマンス面で劣ります。

このような事情から、VB.NET では (A版ではなく)W版の利用が推奨されます。
なお、API 宣言を Auto 指定にすると、OS に応じて A と W のどちらかを使うかが
自動的に調整されます。


なお、GetPrivateProfileStringA/W の呼び分け方については、下記の資料が参考になるかと思います。
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/special/sp06_GetPrivateProfileString.html
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/Reference/ref2_GetPrivateProfileString.html


> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\のAeDebug
> というセクションを読みに行ってしまいます。
この質問を見たときは、IniFileMapping の話かと勘違いしてしまいましたが、
今回は AeDebug セクションの話なのですね。

AeDebug は、アプリケーション・エラー発生時におけるデバッガの動作を規定するためのエントリです。

ということで、まずはアプリケーションエラーが発生していないかを確認してみてください。
その上で、もしもアプリケーションエラーが発生しているなら、どこでそのエラーが
発生しているのかを追跡し、その原因を取り除いてみてください。