DOBON.NETプログラミング道掲示板

■34624 / 親記事)  VB.NETで作成したDLLをVB6.0から呼び出す
  
□投稿者/ tomy 一般人(1回)-(2021/01/20(Wed) 18:12:04)
  • アイコン環境/言語:[Windows7Pro VB.Net/VB6.0/.Net Framework4.0] 
    分類:[.NET] 


    VB6.0で作成されたアプリがありまして、このアプリの仕様変更があります。

    その際、一部変更についてVB.Net 2015で作成したDLLを呼び出す必要があります。

    VB.Net 2015側は「COM相互運用機能の登録」をオンにしてあり、VB6.0の開発環境にてRegAsmを実行し、登録できています。

    VB6.0のプロジェクトからもDLLを参照設定できています。

    この状態で、デバッグ時はDLLをVB6.EXEとおなじディレクトリに入れておかなければ動きません。

    DLLがない状態だと

    実行時エラー '-2147024894(80070002)'
    オートメーションエラーです。
    指定されたファイルが見つかりません。

    が発生します。

    また、アプリをEXEで実行しようとするとやはり同じディレクトリにDLLがないと動きません。

    パスが通ったディレクトリにDLLを置いてもオートメーションエラーが発生します。

    RegAsmは下記のようにしています。

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe XXXXXX.dll /tlb

    VB6.0からは上記コマンドで作成したtlbファイルを参照設定しています。

    とりあえず同じディレクトリに置けば動くのですが、複数システムから参照するDLLのため、1か所で管理できればありがたいな、と思っています。

    実行ファイルと同じディレクトリになくてもDLLを呼び出す手段はないでしょうか。


    DLL開発環境
    Visual Studio 2015(VB.Net)
    Windows 7 Pro SP1

    アプリ開発環境
    Visual Studio 6.0(VB6.0)
    Windows XP SP3

マルチポストを報告
違反を報告
引用返信 削除キー/
■34625 / ResNo.1)  Re[1]: VB.NETで作成したDLLをVB6.0から呼び出す
□投稿者/ Hongliang 大御所(595回)-(2021/01/20(Wed) 19:38:53)
  • アイコンRegAsm ***.dll /tlb /codebase
    のように/codebaseオプションを指定すれば、このRegAsm時のdllのパスがレジストリが登録され、参照されるようになります。
違反を報告
引用返信 削除キー/
■34626 / ResNo.2)  Re[2]: VB.NETで作成したDLLをVB6.0から呼び出す
□投稿者/ tomy 一般人(2回)-(2021/01/20(Wed) 19:54:52)
  • アイコンHongliangさん

    できました、ありがとうございます!

違反を報告
引用返信 削除キー/
■34627 / ResNo.3)  Re[3]: VB.NETで作成したDLLをVB6.0から呼び出す
□投稿者/ tomy 一般人(3回)-(2021/01/20(Wed) 19:56:00)
  • アイコンおかげさまで解決しました。
    ありがとうございました。
解決み!
違反を報告
引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/


- Child Tree -