プロが教えるわが家の防犯対策術!

C++BuilderXで開発したアプリで、CreateProcess()で子プロセスを呼び出すときに
時々、DLLの初期化エラー(0xc0000142)が発生するので、DependencyWalkerを使って
呼び出されているDLLを調べたところ、124個ものDLLが呼び出されていました。
中には"googledesktopcommon.dll"などまったく関係の無さそうなものまで呼び出されていました。
本来、呼び出されるDLLはプログラム内で使用されるものに限定されるものだと
思うのですが、アプリケーション実行時に呼び出されるDLLというのは
どこで決まっているのでしょうか。
また、余計なDLLが呼び出されないように改善することはできますでしょうか。
宜しくお願いします。

A 回答 (1件)

C++BuilderXを使用したことがありませんが、コンパイルオプションの中にライブラリを指定しているところがあると思います。

その指定の中から使用していないと思われるものは削除すればよいと思います。ただし、プログラムで使用しているかどうかなんて判断しずらいと思います。

DependencyWalkerを使ってみた結果、googledesktopcommon.dllを呼び出しているDLLの情報はありましたか?そのDLLが必要かどうか判断できればいいのですが。

あまりお役にたてる情報ではなかったと思いますが、ご参考まで。
    • good
    • 0
この回答へのお礼

お礼遅くなってすみません。
情報ありがとうございました。
DLLの呼び出しがライブラリの仕様によるのであれば
プログラム内でどうこうするのはむずかしいですね・・・

お礼日時:2008/07/22 15:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!