XP compability in VS2008 builds
category: general [glöplog]
Yesterday I imported a VS2005 solution into VS2008 on my Vista machine. After tweaking the custom build rules a bit, all the projects built and I could run it just fine.
Today I figured I'd try to run the output on an XP machine, but to my surprise it wouldn't run. LoadLibrary is failing with an error code of 0x36B1 (which I'm not quite sure what that is).
I opened the DLL in PeBrowse and noticed that MajorOperatingSystemVersion and MajorSubsystemVersion were both set to 5. So I figured that that was the problem and changed them to 4, but that didn't fix the problem.
Is this a problem any of you have had when upgrading to VS2008, and if so, how did you solve it?
Today I figured I'd try to run the output on an XP machine, but to my surprise it wouldn't run. LoadLibrary is failing with an error code of 0x36B1 (which I'm not quite sure what that is).
I opened the DLL in PeBrowse and noticed that MajorOperatingSystemVersion and MajorSubsystemVersion were both set to 5. So I figured that that was the problem and changed them to 4, but that didn't fix the problem.
Is this a problem any of you have had when upgrading to VS2008, and if so, how did you solve it?
you're probably using the dynamically linked runtime and don't have the runtime dlls installed on the xp machine. (so don't worry, it also won't work on other vista machines without vs2008!)
in case that's actually the problem, the solution is this.
in case that's actually the problem, the solution is this.
Hmm, yeah, I'm using the Multithreaded DLL option for the CRT.
That kind of sucks though.. Guess I'll have to choose between using the statically linked CRT or compiling with VS2005.
That kind of sucks though.. Guess I'll have to choose between using the statically linked CRT or compiling with VS2005.
VS2005 has the exact same problem on systems that don't have the runtime dlls installed. So do VS2003 and VS2002.
yeah, microsoft was even so nice to change the vcredist_x86 from VS2005 to VS2005 SP1... and the error messages when running apps where the DLLs are missing are sooo stupid...
/NODEFAULTLIB ftw
Quote:
/NODEFAULTLIB ftw
I'm using stuff in the CRT though. Perhaps I can make do with libctiny or something similar.
you can always go for static linking. code will be smaller than exe + vcredist this way anyway
yeah, static linking isn't really any problem unless you're going for 4k/64k intros in which case you shouldn't use the CRT anyway. :)
just write everything in 100% asm.
Quote:
just write everything in 100% asm.
Actually, I use about 50% asm. But the other 50% still needs some CRT functions :P
I hope you have some _really_ good reasons for writing 50% asm then.
Not really. But this is a private project and not something I'm doing for work, so the practicality aspects are unimportant.