0

一个 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 添加到动态标志中,对于 skel 项目,仅使用 EXCEPTION_SKEL_BUILD_DLL。该库缺少未解析符号的提示,这是由于您没有将 idl_exception_stub 添加到 idl_exception_skel 的库中。

于 2013-12-02T08:26:46.010 回答