いつもお世話になっております。
ここで、質問していいものか迷ったのですが、他に頼れるところもなく。。。
ご存知の方いらっしゃったらコメントお願いします。
開発環境はVS2005 ProfessionalのVBとVB2005Expressを使用しています。
同じくVS2005 VC++で作成したDLLを 例えば
Public Declare Function IniFunc Lib "FuncCntl.dll" () As Integer
のように、モジュールに定義し、IniFunc()関数を実行したところ、
Professional版のほうでは問題なく動作するのですが、Express版では
「DLLを読み込めません。〜(HRESULT からの例外: 0x800736B1)」
となってしまいます。
Professional版からインストーラを作成し、Express版の入ったPCに
インストールし、EXEファイルを実行してみてもやっぱりDLLを読み込め
なかったようなエラーがでました。
これは、VC++のDLLのほうに原因があるのでしょうか?
それともExpress版だからでしょうか?
EXEファイルから実行できないのはExpress版だからとかいう問題では
ないような気がします。
どなたかご教授よろしくお願いします。
全く自信がないのですが、興味がある内容だったので、
1つ確認していただいて宜しいでしょうか?
開発環境の使用しているフレームワークのバージョンは一致しているのに
起こっているんですよね?
一致しているのであれば、困りますね・・・(−−;)
らすかるさん、さっそくのコメントありがとうございます。
>開発環境の使用しているフレームワークのバージョンは一致しているのに
>起こっているんですよね?
そうですね。フレームワークはどちらも2.0を使用しています。
ちなみに、Professional版のPCで作成したアプリケーションをそのまま
Express版のPCにコピーして実行して、このような現象になりました。
実行時の環境(フォルダ構成など)は全く同じにしています。
また、何か気付かれた点がありましたら、よろしくお願いします。
いろいろ確認していたところ、VB側の問題ではないことがわかりました。
VS2005 VC++にて作成されたDLLがデバッグモードで作成されていたため、
DLLに組み込まれていた
MSVCR80D.DLL
MSVCP80D.DLL
MSVCM80D.DLL
が、Express版がインストールされているPCには存在せず、エラーになって
しまっていたようでした。
リリース版で作成したDLLを読み込んでみたところ、別のエラーに変わり
ましたので、この問題は一応クローズさせていただきます。
ツイート | ![]() |