none
アップグレードしたVB2005のDLLをアップグレードしたVC2005で参照不可になる。 RRS feed

  • 質問

  • 現在動作中のパッケージについて、VB6.0で作成されているアプリをVB2005にアッフ゜ク゛レート゛し、DLLを作成します。
    次にVC++6.0で作成されているアプリをVC2005にアッフ゜ク゛レート゛し、
    リビルドしようとしたとき、DLLの参照部分で
    以下のエラーとなってしまいます。
    「C1083 タイフ゜ライフ゛ラリファイルを開けません。DLL名:タイフ゜ライフ゛ラリ/DLLの読み込みエラーです。」

    ソース記述部分は
    #import "neodgdb.dll"
    using namespace NeoDgDb;
    です。

    これを回避するため、

    #using  "neodgdb.dll"

    に変更し、コンパイラのパラメータを

    /clrに変更したところ、以下のコンパイルエラーが発生しました。

    「error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません」

    extern _CLS_TIJIPtr   GpCLS_TIJI;

    ヘッダファイルが参照不可?

    VB2005にアップグレードしたDLLに何か足りないものがあるのでしょうか?

    それともVC2005でリビルドするときのパラメータがおかしいのでしょうか?

    初心者で申し訳ありませんがアドバイスお願いします。

    ちなみに、VB2005は、

    neodgdb.dllのほかに、neodgdb.tlbファイルが作成されていました。

     

    2006年9月19日 4:16

すべての返信

  • マルチポスト(=マナー違反)ですが、これまでの流れがわかるようにしておきます。

    http://www.vcppclub.com/bbs01/wforum.cgi?mode=allread&no=3878&page=0

    2006年9月19日 5:01
  • すいませんtlbをインポートするとコンパイルまで行えました。

    しかし、未定義エラーとしてコンパイルエラーが出てしまいます。

    VB6.0のtlhとVB2005のtlhを比較すると、

    VB6.0の方では、中が正しく展開されているようで、

    VB2005の方は、何も展開されていないようです。

    これはアップグレードする場合に、何かパラメータが必要でしょうか?

     

    [VB6.0]

    struct __declspec(uuid("121a66ea-bca6-11d4-9f98-00004cc3afc9"))
    _CLS_TIJI : IDispatch
    {
        //
        // Property data
        //

        __declspec(property(get=GetClsIO,put=PutRefClsIO))
        _CLS_IOPtr ClsIO;
        __declspec(property(get=GetStrYmd,put=PutStrYmd))
        _bstr_t StrYmd;

    途中省略

    }

    [VB2005]

    struct __declspec(uuid("bd700e64-bc85-3d4c-838e-1517a4adb465"))
    _CLS_TIJI : IDispatch
    {};

     

     

     

    2006年9月19日 7:02
  • 大変申し訳ありません。こちらのスレッド削除お願いします。

     

    2006年9月20日 10:43