プロジェクト

全般

プロフィール

調査 #4258

TAOでorb.idlをインクルードしなかった場合に発生するエラーに関する調査

n-miyamoto6年以上前に追加. 6年以上前に更新.

ステータス:
新規
優先度:
低め
担当者:
対象バージョン:
-
開始日:
2017/10/12
期日:
進捗率:

20%

予定工数:

説明

TAOを使用した場合にIDLファイル内でorb.idlをインクルードしないと発生するエラーの内容を調べる。

MyServiceC(orb.idl有り).h (14.2 KB) MyServiceC(orb.idl有り).h n-miyamoto, 2017/10/12 22:28
MyServiceC(orb.idl無し).h (12.5 KB) MyServiceC(orb.idl無し).h n-miyamoto, 2017/10/12 22:28
MyServiceC.cpp (21.7 KB) MyServiceC.cpp n-miyamoto, 2017/10/12 22:28

履歴

#1 n-miyamoto6年以上前に更新

Visual Studio 2017でビルドした場合に発生するエラーの内容は以下の通り。
ACEのバージョンは6.4.4、TAOのバージョンは2.4.4。
orb.idlをインクルードすると発生しない。

エラー    LNK2005    "public: __cdecl TAO::unbounded_basic_string_sequence<char>::~unbounded_basic_string_sequence<char>(void)" 
(??1?$unbounded_basic_string_sequence@D@TAO@@QEAA@XZ) は既に MyServiceStub.obj で定義されています。    

IDLコンパイルで生成したファイルは添付してあります。
CPPファイルは全く同じ。違いがあるのはヘッダーファイルのみ。

orb.idlをインクルードした場合にはヘッダーファイルで以下のファイルをインクルードします。
違うのはこの部分だけです。

#include "tao/String_Manager_T.h" 
#include "tao/AnyTypeCode/BooleanSeqA.h" 
#include "tao/AnyTypeCode/CharSeqA.h" 
#include "tao/AnyTypeCode/DoubleSeqA.h" 
#include "tao/AnyTypeCode/FloatSeqA.h" 
#include "tao/AnyTypeCode/LongDoubleSeqA.h" 
#include "tao/AnyTypeCode/LongSeqA.h" 
#include "tao/AnyTypeCode/OctetSeqA.h" 
#include "tao/AnyTypeCode/ShortSeqA.h" 
#include "tao/AnyTypeCode/StringSeqA.h" 
#include "tao/AnyTypeCode/ULongSeqA.h" 
#include "tao/AnyTypeCode/UShortSeqA.h" 
#include "tao/AnyTypeCode/WCharSeqA.h" 
#include "tao/AnyTypeCode/WStringSeqA.h" 
#include "tao/AnyTypeCode/LongLongSeqA.h" 
#include "tao/AnyTypeCode/ULongLongSeqA.h" 
#include "tao/AnyTypeCode/PolicyA.h" 
#include "tao/AnyTypeCode/Policy_ManagerA.h" 
#include "tao/AnyTypeCode/Policy_CurrentA.h" 
#include "tao/AnyTypeCode/ServicesA.h" 
#include "tao/AnyTypeCode/ParameterModeA.h" 
#include "tao/AnyTypeCode/orb_typesA.h" 
#include "tao/AnyTypeCode/Typecode_typesA.h" 
#include "tao/AnyTypeCode/WrongTransactionA.h" 
#include "tao/BooleanSeqC.h" 
#include "tao/CharSeqC.h" 
#include "tao/DoubleSeqC.h" 
#include "tao/FloatSeqC.h" 
#include "tao/LongDoubleSeqC.h" 
#include "tao/LongSeqC.h" 
#include "tao/OctetSeqC.h" 
#include "tao/ShortSeqC.h" 
#include "tao/StringSeqC.h" 
#include "tao/ULongSeqC.h" 
#include "tao/UShortSeqC.h" 
#include "tao/WCharSeqC.h" 
#include "tao/WStringSeqC.h" 
#include "tao/LongLongSeqC.h" 
#include "tao/ULongLongSeqC.h" 
#include "tao/PolicyC.h" 
#include "tao/Policy_ManagerC.h" 
#include "tao/Policy_CurrentC.h" 
#include "tao/ServicesC.h" 
#include "tao/ParameterModeC.h" 
#include "tao/orb_typesC.h" 
#include "tao/Typecode_typesC.h" 
#include "tao/WrongTransactionC.h" 

他の形式にエクスポート: Atom PDF