0

1 つの IDL ファイル exception.idl

module project{
    exception JobCreateException{
    string errorMessage;
   };

}

MPC ファイルの一部は次のとおりです。

project(idl_exception): taoidldefaults, anytypecode {
   idlflags += -GI -Wb,stub_export_macro=EXCEPTION_STUB_Export -Wb,stub_export_include=exception_stub_export.h -Wb,skel_export_macro=EXCEPTION_SKEL_Export 

-Wb,skel_export_include=exception_skel_export.h

  IDL_Files {
    exception.idl
  }
 custom_only = 1
}

  project(idl_exception_skel): naming, iortable, utils, avoids_corba_e_micro, anytypecode {
     sharedname = idl_exception_skel
      after +=  idl_exception
      Source_Files {
         exceptionS.cpp
      }
     Header_Files{
    exceptionS.h
        exceptionC.h
        exception_skel_export.h 
    }
   dynamicflags += EXCEPTION_SKEL_BUILD_DLL EXCEPTION_STUB_BUILD_DLL
 }

mpc ファイルによると、VC8 でスケルトン DLL ファイルを生成したいのですが、.lib ファイルはサーバーの実装によってリンクされます。

ただし、コンパイル後、idl_exception_skel.dll ファイルは正常に生成されますが、.lib ファイルは生成されません。

次のような新しい構造体を追加するよりも:

struct myobject{
   string name;
};

idl ファイル内ですべて再生成すると、lib ファイルが表示されます。

スケルトンに使用できない IDL ファイルの種類について説明はありますか? @ジョニー・ウィレムセン

4

1 に答える 1

0

skel ライブラリは、IDL ファイルに関連するスタブ ライブラリとリンクする必要があります。スタブ プロジェクトの場合は EXCEPTION_STUB_BUILD_DLL を dynamicflags に追加し、skel プロジェクトの場合は EXCEPTION_SKEL_BUILD_DLL のみを使用します。lib が欠落しているという事実は、idl_exception_skel のライブラリに idl_exception_stub を追加していないために発生する、未解決のシンボルのヒントです。

于 2013-12-02T08:26:46.010 に答える