|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
Stay one step ahead of the competition. Evaluate and give feedback
on some of the hottest web development tools on the market today.
Make your opinion heard! Click
Here
|
|
#1
|
|||
|
|||
|
Declaration syntax error when compiling
I am compiling a program for the Palm pilot using CodeWarrior v8, and writing the code in C. However: when I try to include header files with C++ "class" definitionsit gives me errors galore. I'm sure it's a simple #include statement or an #ifndef statement that I am missing, but trying those has done nothing. Here is some sample code that causes an error.
Filename: platform.h #if !defined(__PLATFORM_H_INCLUDED) #define __PLATFORM_H_INCLUDED #include <PalmOS.h> #include <FloatMgr.h> //this files contains all data type declarations depending on the platform #define DALP_EXPORT __declspec(dllexport) #define DALP_IMPORT __declspec(dllimport) // palm os platform #define Dint Int32 #define Duint unsigned Int32 #define Dlong long #define Ddouble FlpDouble #define Dvoid void #define Dchar char //Single byte character #define Dbyte unsigned char #define Dfalse false #define Dtrue true #define Dbool bool #define Ddword unsigned long #define Dnull NULL #define NULL_LENGTH ((unsigned long) ~0) // some macros that support other functions #define lec2uint(A) (Dint) (((Dint) ((Dbyte) (A)[0])) +\ (((Dint) ((Dbyte) (A)[1])) << 8)) #define lec3uint(A) (Dint) (((Dint) ((Dbyte) (A)[0])) +\ (((Dint) ((Dbyte) (A)[1])) << 8) +\ (((Dint) ((Dbyte) (A)[2])) << 16)) #define lec4uint(A) (Dint) (((Dint) ((Dbyte) (A)[0])) +\ (((Dint) ((Dbyte) (A)[1])) << 8) +\ (((Dint) ((Dbyte) (A)[2])) << 16) +\ (((Dint) ((Dbyte) (A)[3])) << 24)) #define int2lec(T,A) { Duint def_temp= (Duint) (A) ;\ *((Dbyte*) (T))= (Dbyte)(def_temp); \ *((Dbyte*) (T+1))=(Dbyte)((def_temp >> 8)); } #define int3lec(T,A) { \ *((T))=(Dbyte) ((A));\ *((T)+1)=(Dbyte) (((A) >> 8));\ *((T)+2)=(Dbyte) (((A) >> 16)); \ } #define int4lec(T,A) { *(T)=(Dbyte) ((A));\ *((T)+1)=(Dbyte) (((A) >> 8));\ *((T)+2)=(Dbyte) (((A) >> 16));\ *((T)+3)=(Dbyte) (((A) >> 24)); } //global functions void fnGetExternalErrorMessageText(Dchar* pErrorMessage, Dchar* pszFunctionName); class DalpMemStrRoutines{ public: static Dchar* StringCopy( Dchar* pszDestination, const Dchar* pszSource); static Dint StringLength(const Dchar *pszString); static Dvoid* MemoryCopy(Dvoid* pDest, const Dvoid* pSrc, Dint nCount); static Dvoid* MemorySet(Dvoid* pDest, Dint nChar, Dint nCount);}; #define DALP_D_ITOD(X) (_d_itod(X)) #define DALP_D_DTOI(X) (_d_dtoi(X)) #define DALP_D_DIV(X,Y) (_d_div(X,Y)) #define DALP_D_MUL(X,Y) (_d_mul(X,Y)) #define ASSERT(X) \ do {if (Dnull == X) ErrDisplayFileLineMsg(__FILE__, (UInt16) __LINE__, "Null Pointer passed as parameter");} while (0) #define SOCKET_ERROR (-1) #endif The error that it gives upon compiling, when I #include platform.h in my source file is: "Error: declaration syntax error platform.h line 91 class DalpMemStrRoutines " This is only the first of many errors, all of which seem to be a part of C++ (eg: it'll also complain about the next line after this error where "public:" is used) Am I doing something obviously wrong? Thank you for your help, Nathan (nbluvol@uwo.ca) |
|
#2
|
|||
|
|||
|
Turns out that it was the stupidest error ever! All the errors were because my files were with the ".c" extension and not ".cpp" (or whatever C++ extension tickles your fancy). As soon as I changed the files names: Voila! and it worked.
|
![]() |
| Viewing: Dev Shed Forums > Programming Languages > C Programming > Declaration syntax error when compiling |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|