I was interested in learning more about mixing runtimes between exes and dlls. On a WinXP machine, I created a dll build against the release runtime (/MD) and an exe that calls a function in the dll that is built debug (/MDd). The function in the dll allocates memory to the heap and the exe deletes it. I expected this to crash, however, it hangs instead. Using ProcessExplorer I see that the state of the executable is "wait:userrequest". The same exercise on a Vista machine does show the dialog. I want to see the dialog on my XP machine too!
I've tried the opposite of all the suggestions here. I've googled around for quite some time now. I've played around with enabling all Error Reporting services I could find in the gpedit.msc as well as verified that the Error Reporting Service is running in the AdministrativeTools->Services dialog.
To be explicit, here is my dll:
int* getDllMem(){
printf("dll alloc mem");
int *ptr = new int;
return ptr;
}
Here is my exe:
int main()
{
printf("main\n");
int *ptr = getDllMem();
printf("main delete\n");
delete ptr;
printf("main exit\n");
return 0;
}