exe and CBase 69 panic.

Login to reply to this topic.
Wed, 2004-10-20 12:15
Joined: 2004-09-27
Forum posts: 6
Hello

I'm having a problem with a special type of exe, targettype epocexe, used by class RScheduler.

When trying to run it , i always get a CBase 69 Panic. However it does not even enter the E32Main() function. I saw somewhere that this might be if I use libc in my code. I have commented out all my libc code and all my code really, so that the E32Main function is empty. BUt I still get this panic when running it.

Please if anyone managed to solve something similar please let me know.

Wed, 2004-10-20 12:35
Joined: 2004-07-28
Forum posts: 1379
exe and CBase 69 panic.
Is it E32USER-CBase 69?

Or just CBase 69?

If its E32USER-CBase 69

In your E32Main you must do:

CTrapCleanup* pCleanup = CTrapCleanup::New();
if(pCleanup)
{
TRAPD(err, MainFunctionThatLeavesL());
delete pCleanup;
}

Otherwise you will get E32USER-CBase 69 when you try and use the Cleanup Stack.

As for why E32Main() isn't being called  Huh Hmm.  EPOCEXE isn't anything fancy - all it does is build to a DLL when running on emulator or an EXE on target.

Of course, your E32Main will not be called if you are trying to run this under an emulator because what you will actually get is a DLL Smiley  You will need something like:

Code:

#if defined(__WINS__)

TInt E32Dll(TDllReason)
{
return KErrNone;
}

#else

TInt E32Main()
{
}

#endif


Only use EPOCEXE if you really need to (are you writting a server?) otherwise, use EXE if you want an EXE all the time on targert or emulator.

didster

  • Login to reply to this topic.