Actions
調査 #4258
openTAOでorb.idlをインクルードしなかった場合に発生するエラーに関する調査
Start date:
10/12/2017
Due date:
% Done:
20%
Estimated time:
Description
TAOを使用した場合にIDLファイル内でorb.idlをインクルードしないと発生するエラーの内容を調べる。
Files
Actions
#1
Updated by n-miyamoto almost 7 years ago
- File MyServiceC(orb.idl有り).h MyServiceC(orb.idl有り).h added
- File MyServiceC(orb.idl無し).h MyServiceC(orb.idl無し).h added
- File MyServiceC.cpp MyServiceC.cpp added
- % Done changed from 0 to 20
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"
Actions