1 int global_a = 2; 2 3 void 4 exewrite (void) 5 { 6 global_a = 1; 7 } 8 9 extern void dllwrite (void); 10 11 int _stdcall 12 testexe_main (void* p1, void *p2, char* p3, int p4) 13 { 14 dllwrite (); 15 /* We can't print or assert in a minimal app like this, 16 so use the return status to indicate if global_a 17 ended up with the correct expected value. */ 18 return 1 - global_a; 19 } 20 21 /* We have to import something, anything at all, from 22 kernel32, in order to have the thread and process 23 base thunk routines loaded when we start running!. */ 24 extern __attribute((dllimport)) void _stdcall Sleep (unsigned int duration); 25 26 int _stdcall 27 testexe_dummy (unsigned int foobar) 28 { 29 Sleep (foobar); 30 } 31 32