[aspectc-user] AC meets Symbian

Ext-Bil.Lewis at nokia.com Ext-Bil.Lewis at nokia.com
Fri Jul 2 20:23:42 CEST 2004


Hi Olaf (et. al.),

After some discussion with others here on 
the various things we talked about, it was
concluded that my proper course was to pursue
using AC first, and then look at the possibility
of implementing all the GUI stuff which I was talking
about.

Seems fair.

So I ran through the demos on the distribution. They
all work as advertised.

Cool.

So I tried doing something very simple with the
Symbian code.

Not cool.

AC++ complains about some of the header files. I've
looked through them and don't see anything unusual.
But this is C++, so anything is possible.

Here's a typical error msg:


C:\..\elloWorld>c:\ac\ac++ -e cpp -p src -d out -v1   -DNDEBUG -D_UNICODE 
-D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__AVKON_ELAF__ -D__MARM_ARM4__ 
-D__DLL__  
-I "c:\Symbian\6.1\Series60\EPOC32\INCLUDE"  
-I "c:\SYMBIAN\EMCCSOFT\HELLOWORLD\INC"   
-I "c:\SYMBIAN\EMCCSOFT\HELLOWORLD\SRC\" 
-I "c:\SYMBIAN\EMCCSOFT\HELLOWORLD\GROUP" 

..s32strm.inl(296): error: call to function `ExternalizeL (const TSize &,RWriteStream &)' is ambiguous
..s32strm.inl(134): candidates are `void ExternalizeL(const TRect &,RWriteStream &)'
..s32strm.inl(133):                `void ExternalizeL(TSize,RWriteStream &)'


I played around, changing the various flags with no
particular result. The flags and includes come from
the command line given to GCC (which works).

The actual code is not unusual (s32std.h) and seems correct:

   ===========================================
...

class TRect
	{
public:
	enum TUninitialized { EUninitialized };
	TRect(TUninitialized) {}
...

class TSize;

   ===========================================


and (s32strm.inl):


   ===========================================
...
IMPORT_C void ExternalizeL(TSize aSize,RWriteStream& aStream);
IMPORT_C void ExternalizeL(const TRect& aRect,RWriteStream& aStream);
...
inline RWriteStream& operator<<(RWriteStream& aStream,const TSize& aSize)
	{ExternalizeL(aSize,aStream);return aStream;}
...

   ===========================================





So...

I'm lost. I'm 86.7% certain that the compilers used by symbian (GCC,
VC, BCC) are the same as used normally. Thus it would appear that they
will parse a .h file that AC++ won't. But that's a guess. I really don't
know enough to confirm it.

Is there anything you can suggest?

-Bil




More information about the aspectc-user mailing list