compiling simple windows app
xie jason
jasoncrab at yahoo.com.au
Wed Jan 3 00:07:58 CST 2007
hi all,
I was trying to compile a simple windows
application using winelib. it crashs and returns:
err:seh:setup_exception stack overflow 12 bytes in
thread 0009 eip 60169224 esp 00230ff4 stack
0x231000-0x340000
I first convert a .dll, which contains a simple add
function (int add(int a, int b)) to be .dll.so. And
then I compile a simple program which calls this
function. I am able to compile it properly. but when i
run it, it shows above error message.
-----------------.h is ------------------------------
int __stdcall add(int a, int b);
----------------.c is----------------------------
HMODULE hDLL=0; /* DLL to call */
#ifdef __i386__
#define GET_THIS(t,p) t p;\
__asm__ __volatile__ ("movl %%ecx, %0" : "=m" (p))
#endif
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD
fdwReason, LPVOID lpvReserved)
{
TRACE("(0x%p, %ld,
%p)\n",hinstDLL,fdwReason,lpvReserved);
if (fdwReason == DLL_WINE_PREATTACH) return FALSE; /*
prefer native version */
if (fdwReason == DLL_PROCESS_ATTACH)
{
hDLL = LoadLibraryA( "libjason.dll" );
printf("load dll\n");
TRACE(":Forwarding DLL (libJason.dll) loaded
(%ld)\n",(LONG)hDLL);
}
else if (fdwReason == DLL_PROCESS_DETACH)
{
FreeLibrary( hDLL );
TRACE(":Forwarding DLL (libJason.dll) freed\n");
}
return TRUE;
}
int add(int a, int b)
{
int (*pFunc)(int, int);
int retVal;
pFunc=(void*)GetProcAddress(hDLL,"vgMath");
TRACE("((int)%ld,(int)%ld):
forward\n",(LONG)a,(LONG)b);
retVal = pFunc(a,b);
TRACE("Returned (%ld)\n",(LONG)retVal);
return retVal;
}
------------------------.spec is --------------------
1 stdcall add( long long ) vgMath
can any one help me?
thanks
Send instant messages to your online friends http://au.messenger.yahoo.com
More information about the wine-devel
mailing list