Импортиране на Objective-C заглавка в Objective-C++?

Как бих импортирал заглавка на Objective-C в Objective-C++?

Това е заглавката:

typedef struct _xmlDoc xmlDoc;
typedef struct _xmlNs xmlNs;
typedef struct _xmlAttr xmlAttr;
typedef struct _xmlNode {
    void* _field1;
    int _field2;
    char* _field3;
    struct xmlNode* _field4;
    struct xmlNode* _field5;
    struct xmlNode* _field6;
    struct xmlNode* _field7;
    struct xmlNode* _field8;
    xmlDoc* _field9;
    xmlNs* _field10;
    char* _field11;
    xmlAttr* _field12;
    xmlNs* _field13;
    void* _field14;
    unsigned short _field15;
    unsigned short _field16;
} xmlNode;

typedef struct _xmlDict xmlDict;
typedef struct _xmlDtd xmlDtd;
struct _xmlDoc {
    void* _field1;
    int _field2;
    char* _field3;
    struct xmlNode* _field4;
    struct xmlNode* _field5;
    struct xmlNode* _field6;
    struct xmlNode* _field7;
    struct xmlNode* _field8;
    struct xmlDoc* _field9;
    int _field10;
    int _field11;
    struct xmlDtd* _field12;
    struct xmlDtd* _field13;
    struct xmlNs* _field14;
    char* _field15;
    char* _field16;
    void* _field17;
    void* _field18;
    char* _field19;
    int _field20;
    struct xmlDict* _field21;
    void* _field22;
    int _field23;
    int _field24;
};

struct _xmlNs {
    struct xmlNs* _field1;
    int _field2;
    char* _field3;
    char* _field4;
    void* _field5;
    struct xmlDoc* _field6;
};

struct _xmlAttr {
    void* _field1;
    int _field2;
    char* _field3;
    struct xmlNode* _field4;
    struct xmlNode* _field5;
    struct xmlNode* _field6;
    struct xmlAttr* _field7;
    struct xmlAttr* _field8;
    struct xmlDoc* _field9;
    struct xmlNs* _field10;
    int _field11;
    void* _field12;
};

struct _xmlDtd;

struct _xmlDict;

typedef struct sqlite3 sqlite3;

typedef struct sqlite3_stmt sqlite3_stmt;

При компилирането на моя проект той извежда следните грешки:

Structs.h:49:3: error: typedef redefinition with different types ('struct _xmlNode' vs 'xmlNode')
} xmlNode;
  ^
Structs.h:36:9: note: previous definition is here
        struct xmlNode* _field4;
               ^
Structs.h:62:9: error: elaborated type refers to a typedef
        struct xmlDoc* _field9;
               ^
Structs.h:29:24: note: declared here
typedef struct _xmlDoc xmlDoc;
                       ^
Structs.h:65:9: error: elaborated type refers to a typedef
        struct xmlDtd* _field12;
               ^
Structs.h:52:24: note: declared here
typedef struct _xmlDtd xmlDtd;
                       ^
Structs.h:67:9: error: elaborated type refers to a typedef
        struct xmlNs* _field14;
               ^
Structs.h:30:23: note: declared here
typedef struct _xmlNs xmlNs;
                      ^
Structs.h:74:9: error: elaborated type refers to a typedef
        struct xmlDict* _field21;
               ^
Structs.h:51:25: note: declared here
typedef struct _xmlDict xmlDict;
                        ^
Structs.h:81:9: error: elaborated type refers to a typedef
        struct xmlNs* _field1;
               ^
Structs.h:30:23: note: declared here
typedef struct _xmlNs xmlNs;
                      ^
Structs.h:86:9: error: elaborated type refers to a typedef
        struct xmlDoc* _field6;
               ^
Structs.h:29:24: note: declared here
typedef struct _xmlDoc xmlDoc;
                       ^
Structs.h:96:9: error: elaborated type refers to a typedef
        struct xmlAttr* _field7;
               ^
Structs.h:31:25: note: declared here
typedef struct _xmlAttr xmlAttr;
                        ^
Structs.h:98:9: error: elaborated type refers to a typedef
        struct xmlDoc* _field9;
               ^
Structs.h:29:24: note: declared here
typedef struct _xmlDoc xmlDoc;
                       ^
Structs.h:99:9: error: elaborated type refers to a typedef
        struct xmlNs* _field10;
               ^
Structs.h:30:23: note: declared here
typedef struct _xmlNs xmlNs;

Това не е ли защото заглавката е написана на Objective-C?


person Tyilo    schedule 09.05.2012    source източник
comment
Изглежда ми счупено - тези указатели трябва да са struct _xmlNode * и т.н. Те се отнасят до типа typedef'd, което е грешно.   -  person trojanfoe    schedule 09.05.2012


Отговори (1)


Да, проблемът е, че нямате нищо дефинирано от тип struct xmlNode. Имате тип struct _xmlNode и тип xmlNode, но не и struct xmlNode. Можете да замените всички случаи на struct xmlNode с xmlNode или struct _xmlNode.

person Jeffery Thomas    schedule 09.05.2012