After giving up for the moment on building with Visual C 6, I tried Visual Studio 2005.
First hitch: Boy, does it spew out lots of warnings about deprecated functions! http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=87401&SiteID=1 talks about this a bit; defining _CRT_SECURE_NO_DEPRECATE and _CRT_NONSTDC_NO_DEPRECATE suppresses the warnings. Fix: You can't set them via corewin_express.vsprops because our project is converted from an older visual studio version, so you have to add those two defines to all the .dsp files, e.g. perl -p -i -e 's,/D "WIN32",/D "WIN32" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_CRT_SECURE_NO_DEPRECATE",' `find . -iname '*.dsp'` Second hitch: For some reason, the imported projects lose their list of .lib files to link against. Fix: As suggested at http://msdn2.microsoft.com/en-us/express/aa700755.aspx add user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib to the "Additional Dependencies" setting in the file corewin_express.vsprops. Third hitch: error C2065: 'PFORM_INFO_2A': undeclared identifier See http://msdn2.microsoft.com/en-us/library/aa383745(VS.85).aspx and http://blogs.msdn.com/oldnewthing/archive/2007/04/11/2079137.aspx winspool.h only defines the new symbol if NTDDI_VERSION is NTDDI_LONGHORN or higher. NTDDI_LONGHORN is 0x06000000. Fix: add /D _WIN32_WINNT=0x0600 to that list of changes to all the .dsp files in hitch #1 above. Fourth hitch: urlmon_test.exe refers to CLSID_IdentityUnmarshal, but that symbol is not defined. ?? Fifth hitch: generated.c refers to CS_STUB_INFO, which is not defined in Microsoft's rpcndr.h. ?? Sixth hitch: it can't find server.h Seventh hitch: can't find tmarshal.h Fix: Not sure, but maybe these files need to be generated by midl, and msvcmaker doesn't know about that yet? See http://www.mail-archive.com/wine-devel@winehq.org/msg37442.html Eighth hitch: riched20/tests/editor.c fails to compile because in GETTEXTEX, the field is named lpUsedDefChar, not lpUsedDefaultChar Fix: fix our richedit.h? ... Seventy-seventh hitch: gdiplus/tests/brush.c includes Microsoft's gdiplus.h, but that's not safe to include from C, so you get an error on the namespace. Golly. I guess I won't be building the tests with any flavor of microsoft C any time soon! - Dan