Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
I'm sat in the eskybar at Sydney airport waiting for my Qantas flight from Sydney to Tokyo - we've arrived at the airport early expecting to check-in for the flight and drop bags, get through security and then sit in the Sydney Qantas Business Lounge - that's not quite how things worked out - it turns out that you can't check in for your flight until three hours before the flight leaves (seems a little odd)... So Loke and I are sat in the Eskybar drinking Diet Coke, jumping on WiFi and catching up with work...
So, anyhow, the point of this post was to discuss creating a custom Windows XP Embedded shell based on an MFC 8.0 application. I'm getting ready for a session I'm delivering in Tokyo in two days and needed to create a custom shell - the shell is an MFC dialog based application that has two buttons, "Start CMD" and "Shutdown" - the behavior of the buttons should be obvious - there was a problem though...
I used the following *excellent* MSDN article that describes how to create a custom Windows XP Embedded shell - I used Depends.exe to determine the baseline dependencies for the application - these are MFC80U.DLL, MSVCR80.DLL
So I added these dependencies to my XPE component - made all of the appropriate changes to make my application a Custom Shell on Windows XP Embedded and then built/booted the XPE image in a Virtual PC environment, and..... nothing.
So, next step was to build a command shell image and add the appropriate MFC application and apparent dependencies, I also added FileMon from SystemInternals
FileMon is a GREAT debugging tool for Windows XP Embedded images (as is RegMon) - In this case I was pretty sure that I was missing some files - turns out that I was missing the manifest files for the application, MFC and MSVCRT - here's the list of files I needed for the application to boot as a custom shell correctly.
- MEDC_Shell.exe
- mfc80u.dll
- msvcr80.dll
- MEDC_Shell.exe.manifest
- Microsoft.VC80.CRT.manifest
- Microsoft.VC80.MFC.manifest
The MFC/CRT and MFC/CRT manifest files can be found here (assuming a default install of Visual Studio 2005) - C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86
- Mike
Comments
- Anonymous
June 19, 2009
PingBack from http://mydebtconsolidator.info/story.php?id=7433