Corba にはいくつかの単純なインターフェイスがあります。
#ifndef __INTERFFACE_IDL__
#define __INTERFFACE_IDL__
import User.h;
interface Interfface { void fun(in User u); };
#endif
また、プライベート フィールドを持つ単純な C++ クラス User.h もあります: firstName、lastName、age、およびゲッターとセッター。私は omniORB を使用し、インターフェースを C++ ファイルに変換してみます:
omniidl -bcxx インターフェイス.idl
しかし、それは私にそれらのエラーを与えます:
omniidl -bcxx interface.idl
interface.idl:4: Syntax error in definition
interface.idl:4: Syntax error in abstract valuetype
interface.idl:8: Error in look-up of 'User': 'User' not found
omniidl: 3 errors.
User.h は、interface.idl と同じフォルダーにあります。どうしたの?
このコード:
#ifndef __INTERFFACE_IDL__
#define __INTERFFACE_IDL__
**import test/User.h;**
interface Interfface { void fun(in User u); };
#endif
同じエラーが発生します...
編集:
私の User.h ファイル:
#include <string>
using std::string;
class User
{
private :
string firstName;
string lastName;
int age;
public :
string getFirstName();
string getLastName();
int getAge();
void setFirstName(string);
void setLastName(string);
void setAge(int);
};