gpt4 book ai didi

c++ - 在 *.idl 文件中包含 class.h 文件会产生错误

转载 作者:行者123 更新时间:2023-11-30 04:26:29 25 4
gpt4 key购买 nike

我在 Corba 中有一些简单的接口(interface):

#ifndef __INTERFFACE_IDL__
#define __INTERFFACE_IDL__

import User.h;

interface Interfface { void fun(in User u); };

#endif

我还有简单的 C++ 类 User.h,其中包含私有(private)字段:firstName、lastName、age 以及 getter 和 setter。我使用 omniORB,并尝试将我的界面转换为 C++ 文件:

    omniidl -bcxx interface.idl

but it gives me those errors:

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);
};

最佳答案

import 不是有效的 IDL。也许您的意思是 #include?但是您的 User.h 文件是用 C++ 编写的。它需要在 IDL 中。

关于c++ - 在 *.idl 文件中包含 class.h 文件会产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11559043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com