すみません。質問です。
VC++6.0使用してDLL読み込みのプログラムを作成したのですが、
いざDLLを作成して起動しようとすると即時にランタイムエラーと
なって起動できませんでした。
そこで、DLLのソースにデバッグをかけてみるのですがデバッグ上では
ランタイムエラーとなりうるバグが無く正常に起動しています。
しかも、DLLのソースをビルドして実行ファイルを指定して実行すると正常に
起動できてしまいます。
これは何が原因で起こっているのでしょうか?
因みにDLLは旧バージョンがもう一つあり、それだと正常に起動しています。
なのに新しく作り直したバージョンのものは上手く起動できません。
デバッグのしようがなくて大変困っております。
どなたか御教授願えませんでしょうか。
ランタイムエラー発生時に何もメッセージが
出てこなかったのでしょうか?
正しい(新しい)DLLは読み込み優先度の低いフォルダにあるのではないですか
インターフェイスの古いまたは正しくないDLLが読み込み優先度の高いフォルダに
あると思いますが
同名のものが実際に使用したいフォルダ以外に存在しないか確認してみてください
ご回答頂きありがとうございます。
ぽこ様
>ランタイムエラー発生時に何もメッセージが
>出てこなかったのでしょうか?
何もメッセージが出ずに強制終了されてしまいます。
DLL読み込み時に不正な処理をしてしまうと良く起こることなのですが、
今回の件に関してはおかしいところが見当たらなくて困ってます。
wood様
>インターフェイスの古いまたは正しくないDLLが読み込み優先度の高いフォルダに
>あると思いますが
インターフェースは古くないのですが正しくないDLLである可能性は充分にあります。
現在のDLLはまだ開発中の段階なのでその手のエラーはよくありました。
本来でしたらDLLのソースをデバッガにかければどこかに引っかかっていたため
バグをとり除けていたのですが、今回の件ではそのような部分がなかなか
見つかりませんでした。デバッグの仕方が悪いのでしょうか?
>同名のものが実際に使用したいフォルダ以外に存在しないか確認してみてください
これに関しては古いものは別の場所に保管して置きますので大丈夫だと思います。
すみません。解決しました。
何が悪かったかというと、DLL側にリンクエラーが無かった
為に見落としていたDLLの操作ミスが論理エラーとなり
読込先の参照がおかしくなってしまったのが原因でした。
読込先のプログラムのデバッグしたときに気がつきました。
ご回答頂いた方、本当にすみません。ありがとうございました。
