| int global_a = 2; |
| |
| void |
| exewrite (void) |
| { |
| global_a = 1; |
| } |
| |
| extern void dllwrite (void); |
| |
| int _stdcall |
| testexe_main (void* p1, void *p2, char* p3, int p4) |
| { |
| dllwrite (); |
| /* We can't print or assert in a minimal app like this, |
| so use the return status to indicate if global_a |
| ended up with the correct expected value. */ |
| return 1 - global_a; |
| } |
| |
| /* We have to import something, anything at all, from |
| kernel32, in order to have the thread and process |
| base thunk routines loaded when we start running!. */ |
| extern __attribute((dllimport)) void _stdcall Sleep (unsigned int duration); |
| |
| int _stdcall |
| testexe_dummy (unsigned int foobar) |
| { |
| Sleep (foobar); |
| } |
| |