I have a large, complex app MFC with /CLR, Unicode, uses several dll's including one .NET assembly.
Release build works perfectly on dev machine.
Deployed to target machine with .NET Framework 2.0 and all necessary dependencies. It crashes immediately every time in kernel32.dll with exception 0x406d1388. Further examination with depends.exe shows that the caller was advapi32.dll but I can't get much more info.
This happens on WinXP SP2 and on Win2k SP4.
It seems that the exception is the one normally used to set a thread name so it makes no sense to me that it's causing a crash.
If I run the app (same release version) by remote debugging from VS2005 it all works properly.
I've built a simpler test app to try to reproduce use as much as possible of the same environment (MFC, CLR, dll's and so on) and it also works perfectly.
The problem seems to occur at some stage in the runtime initialisation.
If I run the programme under VS2005 it won't fail. I set it to break on the exception but it never sees it.
If I jit debug it the process wakes up and continues faultless as soon as the debugger attaches.
WinDbg sometimes sees the exception but I can't get any sense out of the call stack. I can't set breakpoints using WinDbg because it corrupts the code somehow and complains about "invalid x86 breakpoint in IL stream".
After hours of trying various debuggers and debugging strategies, countless cups of good strong tea and not a few words of frustration and annoyance I have located and fixed the problem.
Buried deep in my own initialisation code, in a place I haven't visited for years and had forgotten all about is a call to a function called SetThreadName which uses exception 0x406d1388 . This was being compiled as managed code so the framework was seeing the exception even before the catch block in the same function. The solution was simply to mark that function as unmanaged (and then drink more tea ).
I have created a dialog based MFC application. Here I have one form say "MyForm", showing on my current desktop when I run my application. I have two button on this form called "NewDesktop" and "OldDesktop".
Now when I press "NewDesktop" I use CreateDesktop() functions and then SwitchDesktop() so It creates new desktop and shows the new desktop. But now it hides my previous application and my form. Now I want to show my form(MyForm) in this new desktop. I don't know how to do that?
does anybody know how to make a financial calendar? Here are some rules :
1- it begins on Jan 1 and ends at Dec 31 (always)
2- it has 4 4 5 (it means Jan has 4 weeks, Feb 4 weeks and March 5 and so on for each quarter)
Ex: Avril 4 weeks, Mai 4 weeks and Jui 5 weeks;
Jui 4 weeks, Aug 4 weeks and Sept 5 weeks;
Oct 4 weeks, Nov 4 weeks and Dec 5 weeks.
3- it has fews exceptions for bisextil year, on Jan can have 5 weeks. Ex: on 2004