« 画像結合ツールの開発 その1 | メイン | オーバーレイモードの確認 »

September 20, 2004

BRender.axのインストール問題

BRender.ax がインストール出来ないと言う問題が再現した。
次のようなメッセージが出た。
LoadLibrary("BRender.ax")に失敗しました - 指定されたモジュールが見つかりません。
リリース前に確認しようとなにげにやったら出来なくて、なんだなんだとなった。
検索したり実験したりしてなんとか解決。
解法は、次のページにあった。
独自ActiveXがregsvr32で登録できない
dllから他のdllを使用していて、それがないからLoadLibraryに失敗していたというわけか。
ちなみに、mfc71.dllは使用していなかったので不要だった。
後、初めはBRenderのリリース版の方でmsvcrtd.libをリンクしていたので、
msvcr71d.dllが読み込まれていた。
これは、msvcrt.libに変更した。

で、結局のところ、msvcr71.dllが必要と言うことだ。
これはインストーラを書き換えた方が良さそうだな。
msvcr71.dllも内部に持ち、システムディレクトリに見つからなかったらコピーするようにしないと。
MSDNによると・・・
-----以下、引用
アプリケーションでは msvcr71.dll を使用し、再配布する必要があります。システム ディレクトリには、msvcr71.dll のコピーを作成しないでください。また、既にコピーが存在する場合でも、使用しないでください。msvcr71.dll のコピーは、実行可能プログラムと共にアプリケーション ディレクトリに保存してください。/MD スイッチを使用して Visual C++ .NET で構築したアプリケーションはすべて msvcr71.dll を使用します。
-----引用終わり
つまり、マルチスレッドと動的リンクを使うアプリはmsvcr71.dllが必要なわけね。
それと、システムディレクトリにmsvcr71.dllをコピーするのはまずいのか。
じゃあ、インストーラーと同じディレクトリに置くようにしないといけないのか?
と言うことは、単にインストーラーと一緒に固めれば済みそうだけど、そうすると、インストーラーを作る時に問題が発生しそうだから、インストール時、msvcr71.dllをカレントディレクトリに書き出すようにするのが良さそうだな。

インストールの時だけでなく、レイヤー描画を使用する吉里吉里の実行時にも必要だ。やっぱり、システムディレクトリにコピーが必要かな。
この辺りはもう少し検討&検証しよう。

投稿者 Takenori : September 20, 2004 01:23 AM

Trackback Pings

このエントリーのトラックバックURL:
http://blog.kaede-software.com/mt-tb.cgi/196

コメント

Total : Today : Yesterday :