c++ builder > アプリケーションのオープンで時々エラー > モジュール 'SHELL32.dll'のアドレス 76C03EDD でアドレス 00030002 に対する読取り違反がおきました。 > ::ZeroMemory(&sinfo,sizeof(SHELLEXECUTEINFO)); > 初期化忘れ


動作確認
C++ Builder XE4

注意

(追記 2018/11/14)

以下で使用しているZeroMemoryは最適化で吹き飛ぶため、SecureZeroMemory()の使用が推奨されます。

エラーと対策

ShellExecuteEx()を使って他のアプリケーションを開く処理にて、時々だが以下のエラーが出ていた。

モジュール 'SHELL32.dll'のアドレス 76C03EDD でアドレス 00030002 に対する読取り違反がおきました。

コードを見ていて、デジャビュに襲われた。

以下と同じ対策で解決した。
http://qiita.com/7of9/items/7b8e8e5ec4111df6dcf5

::ZeroMemory(&sinfo,sizeof(SHELLEXECUTEINFO));

初期化忘れだった。

他のアプリを扱う処理関連の学習がまだ足りない。