Hokken said: The first change I had to make was the "Use MFC in shared DLL" because I don't have static MFC libs for VS2008. I suppose that could be the cause of the explosion later on, although ideally the app shouldn't care if MFC is statically linked or not.
Possibly, though I'm curious why you "had" to use MFC as a shared DLL.
Hokken said: The next change I had to make was adding _CRT_SECURE_NO_WARNINGS to the preproc defs, otherwise you get about a billion deprecation warnings that obscure everything else. That allowed everything to compile, albeit with 490 warnings - mostly cast warnings and signed/unsigned comparisons.
Yeah, really. I cleaned up the level 1 warnings (at least under VS2005), but after that you get a kajillion typecast warnings.
Hokken said: But then there were about a dozen unresolved externals in the link. Most of these were fixed by setting "treat wchar_t as builtin type" to false in the language settings - apparently VS2008 defaults to recognizing wchar_t as a distinct type from unsigned short.
That doesn't sound right. My project has that set to true.
Hokken said: A few more link errors were fixed by adding _USE_32BIT_TIME_T to the preproc defs. That finally left two unresolved externals, xMonitorFromRect and xGetMonitorInfo, that are declared in multimon.h but are not defined anywhere in my VS2008 environment. (maybe they are defined in the static MFC libs?) Anyway, I added a #define COMPILE_MULTIMON_STUBS to winplace.cpp right before it includes multimon.h and that got the functions defined and then everything linked up fine.
You should be able to replace #include "multimon.h" with #include <windows.h>, I also dealt with this a while back.
Hokken said: I guess it's no surprise with all that monkeying that the app crashes on launch. The stack trace is completely fubar'd so you can't tell what's going on. I tried to compile a debug version to step through it, but that started a whole new raft of compile and link errors so I finally gave up and went to VS6.
It's probably the configuration changes and preprocessor definitions you added, did you add them to both configurations or just the active one? |