Why does the program below crash if I run runFunction2()? Is it not possible / against standards to use exceptions in extern "C" functions? Joost Kraaijeveld Askesis B.V. Molukkenstraat 14 6524NB Nijmegen tel: 024-3888063 / 06-51855277 fax: 024-3608416 email: [EMAIL PROTECTED] web: www.askesis.nl ////////////////////////////////// Source ///////////////////////////////////// #include <cstdio> #include <windows.h> extern "C" unsigned long WINAPI runFunction1(void* aAThreadFunction) { for ( unsigned long i = 0;i<5;i++) { printf("%lu\n",i); Sleep(200); } return 0; } extern "C" unsigned long WINAPI runFunction2(void* aAThreadFunction) { try { for ( unsigned long i = 0;i<5;i++) { printf("%lu\n",i); Sleep(200); } } catch(...) { } return 0; } int main(int argc, char* argv[]) { LPTHREAD_START_ROUTINE threadFunction; // any number and value of arguments will do to run runFunction2() if(argc == 1) { threadFunction = runFunction1; }else { threadFunction = runFunction2; } HANDLE threadHandles[2]; unsigned long threadIds[2]; // Create two threads threadHandles[0] = CreateThread( NULL,0,threadFunction,NULL,0,&threadIds[0]); threadHandles[1] = CreateThread( NULL,0,threadFunction,NULL,0,&threadIds[1]); // Wait for the threads to end WaitForMultipleObjects(2,&threadHandles[0],true,INFINITE); } -- Want to unsubscribe from this list? Send a message to [EMAIL PROTECTED]