Hi,
The right way to do it is to define it in a header file and provide header macro guards inside the header file #ifndef SOME_UNIQUE_IDENTIFIER #define SOME_UNIQUE_IDENTIFIER // struct defn //whatever else #endif /*SOME_UNIQUE_IDENTIFIER*/ But I am new to Axis2 as well, so better wait for more comments from experts before implementing it rapidly Regards, Navin ________________________________ From: Lefrancois, Carl [mailto:[EMAIL PROTECTED] Sent: 21 April 2008 14:26 To: Apache AXIS C User List Subject: RE : WSDL2C: structure definition is generated in C file so sizeof fails compilation Hi Alebu, I may be mistaken, but there will be some type redefinition problems if the struct is defined in a header that is included by many other files. Is it possible to create an instance of the struct and use sizeof() on that at run-time? HTH -----Message d'origine----- De : alebu [mailto:[EMAIL PROTECTED] Envoyé : lundi, avril 21, 2008 08:38 À : Apache AXIS C User List Objet : WSDL2C: structure definition is generated in C file so sizeof fails compilation Hi, I am generating web service using WSDL2C. In generated code I got such a division of sources: In header (.h) file i got type declaration like: typedef struct adb_my_type adb_my_type_t; But adb_my_type structure is located in source file (.c): struct adb_my_type { // declaration of my_type }; Such a location of sources creates a problem when I trying to allocate memory for such a structure. sizeof(adb_my_type_t) fails with incomplete type ... As I understand, it happens because compiler can't discover exact size of structure from header, because actual information is available only from source file. I moved declaration to header like: struct adb_my_type { // declaration of my_type }; typedef struct adb_my_type adb_my_type_t; And now everything works fine, so I think that it is better to generate code in such way. Or maybe there is some motivation to do it like it is made for now? If so, then what is that motivation? And how then to get size of structure? I think It is code generator bug so thats why I actually write that letter. ________________________________ "Ce message est confidentiel, à l'usage exclusif du destinataire ci-dessus et son contenu ne représente en aucun cas un engagement de la part de AXA, sauf en cas de stipulation expresse et par écrit de la part de AXA. Toute publication, utilisation ou diffusion, même partielle, doit être autorisée préalablement. Si vous n'êtes pas destinataire de ce message, merci d'en avertir immédiatement l'expéditeur." "This e-mail message is confidential, for the exclusive use of the addressee and its contents shall not constitute a commitment by AXA, except as otherwise specifically provided in writing by AXA. Any unauthorized disclosure, use or dissemination, either whole or partial, is prohibited. If you are not the intended recipient of the message, please notify the sender immediately." ---------------------------- IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
