![]() |
EXEs created by VisualStudio2008 vs Win4.0 |
Post Reply
|
Page 12> |
| Author | |||
steelbytes
Newbie
Joined: 21 April 2008 Location: Australia Online Status: Offline Posts: 8 |
Quote Reply
Topic: EXEs created by VisualStudio2008 vs Win4.0Posted: 21 April 2008 at 7:21am |
||
|
EXEs and DLLs created by Visual Studio 2008 don't run on Windows 4.0 (ie, NT4 and Win9x)
here's my results of digging into this problem ...
|
|||
|
Louis Solomon
www.SteelBytes.com |
|||
![]() |
|||
molotov
Moderator Group
Joined: 04 October 2006 Online Status: Offline Posts: 17287 |
Quote Reply
Posted: 21 April 2008 at 8:08am |
||
|
Hi Louis,
It would seem that this is discussed (indirectly) here. Have a look at the /SUBSYSTEM linker switch. (Doesn't help if you're not the one building the app, of course... Edited by molotov - 21 April 2008 at 8:10am |
|||
|
Daily affirmation:
net helpmsg 4006 |
|||
![]() |
|||
steelbytes
Newbie
Joined: 21 April 2008 Location: Australia Online Status: Offline Posts: 8 |
Quote Reply
Posted: 21 April 2008 at 4:42pm |
||
|
1. the /SUBSYSTEM with VS2008 won't allow values less then 5.0
2. if you read the page I pointed to, you'll see the os ver num is not the only issue.
|
|||
|
Louis Solomon
www.SteelBytes.com |
|||
![]() |
|||
molotov
Moderator Group
Joined: 04 October 2006 Online Status: Offline Posts: 17287 |
Quote Reply
Posted: 21 April 2008 at 6:12pm |
||
|
RE: 1) Ah, thanks. I hadn't actually tried it.
Wonder if it's worth mentioning on your page? (Also would be nice if the MSDN doc for the switch would include that detail...)
RE: 2) I did read the page; I guess I disregarded parts 2 and 3 because they were Win9x only... Shame on me...
|
|||
|
Daily affirmation:
net helpmsg 4006 |
|||
![]() |
|||
steelbytes
Newbie
Joined: 21 April 2008 Location: Australia Online Status: Offline Posts: 8 |
Quote Reply
Posted: 21 April 2008 at 8:01pm |
||
|
thnx for the suggestion (reminder) - updated. what inspired me to post this thread was, that I saw that sysintnerals had published a new ver of handle.exe that is supposed to work on win9x - it doesn't :-) It looks like sysinternals have bumped into this set of problems and hadn't realised part 2 and 3 of my post ...
|
|||
|
Louis Solomon
www.SteelBytes.com |
|||
![]() |
|||
molotov
Moderator Group
Joined: 04 October 2006 Online Status: Offline Posts: 17287 |
Quote Reply
Posted: 22 April 2008 at 4:48am |
||
I used VS 2003's editbin.exe, and was no longer presented with the following dialog:
I finally made a 98SE and ME VM; the app didn't run, probably due to Part 2 and Part 3 from your page. Added those functions, and rebuilt, but still no joy...
Got around those with /FORCE:MULTIPLE to ignore the second definition, but the apps still wouldn't run... (No warning, and no response from the app.)
|
|||
|
Daily affirmation:
net helpmsg 4006 |
|||
![]() |
|||
steelbytes
Newbie
Joined: 21 April 2008 Location: Australia Online Status: Offline Posts: 8 |
Quote Reply
Posted: 22 April 2008 at 5:11am |
||
|
were you compiling with global optimisation? if so, it seems that you can't reliably override the CRT functions.
|
|||
|
Louis Solomon
www.SteelBytes.com |
|||
![]() |
|||
molotov
Moderator Group
Joined: 04 October 2006 Online Status: Offline Posts: 17287 |
Quote Reply
Posted: 22 April 2008 at 7:43pm |
||
|
Even after disabling compiler optimization (/Od), and using the functions in Part 2 and Part 3 from your page (in conjunction with /FORCE:MULTIPLE), and running the binary through the function in Part 1 (or VS2003's EditBin.exe), the executables created in VS 2008 do not function on Windows 98 SE or Windows ME.
In the case of EditBin, Dependency Walker verifies the Subsystem Ver is 4.0, and in the case of the function from Part 1 Dependency Walker shows the OS Ver and Subsystem Ver both as 4.0.
|
|||
|
Daily affirmation:
net helpmsg 4006 |
|||
![]() |
|||
steelbytes
Newbie
Joined: 21 April 2008 Location: Australia Online Status: Offline Posts: 8 |
Quote Reply
Posted: 22 April 2008 at 10:01pm |
||
|
please past your build log here, as I am interested in reading the warnings that the linker generates when resolving the multiple references to these two functons. PS, test 5 mins ago with a hello world test from scratch ... |
|||
|
Louis Solomon
www.SteelBytes.com |
|||
![]() |
|||
molotov
Moderator Group
Joined: 04 October 2006 Online Status: Offline Posts: 17287 |
Quote Reply
Posted: 23 April 2008 at 3:54am |
||
|
I have my test program working on 98 and ME now - thanks for your persistence.
I had taken this to mean /Og which the default optimization (/O2) includes. I had previously changed the optimzation setting to /Od, to no effect.
This made me look at that Whole Program Optimization setting (/GL); disabling that seems to have been the key.
EditBin.exe from VS 2003 and the code from Part 1 each worked, in combination with the functions from Part 2 and Part 3.
Wonder if it may also be worth including your list of steps on your page... Edited by molotov - 23 April 2008 at 4:09am |
|||
|
Daily affirmation:
net helpmsg 4006 |
|||
![]() |
|||
Post Reply
|
Page 12> |
| Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |