Andreas Mohr wrote:
Hi,
On Sat, May 07, 2005 at 08:09:39PM -0500, Dustin Navea wrote:
I was wondering, since I have been away for so long, are we still implementing functionality for 16-bit programs? The reason I ask is because the freecell and solitaire from Win98/ME will not load in wine, while the ones from 2k/XP will. This is obviously due to the fact that our cards.dll is 32-bit only, whereas the cards.dll in Win98/ME is 16-bit.
Of course, the Win98/ME versions of the games wont start on WinXP either for the same reason.
As has been mentioned before on WD, cards.dll is a very obvious Microsoft screwup, since both 16bit and 32bit DLL carry the same name, which is a big no-no. I really don't think we want to patch our loader like mad to accomodate for such a stupid mistake.
And I, personally, will not see the lose of the 16 bit version as too much of a problem. However:
Instead, maybe we should implement cards16.dll and cards.dll. Then maybe there would be the possibility to programmatically advise the user to move the cards16.dll .so to the cards.dll .so in case he requires the 16bit version?
A real PE file has an NE header, which has a MZ header. Usually, these headers just tell whoever is trying to run the application that this is a 32 bit application. One can, however, generate a DLL which is both a 32 and a 16 bit DLL.
Does our loader support such a format? If we call LoadLibrary16 on a DLL that has both PE and NE, will it use the NE? If so, we can create both DLLs inside the same file, and problem solved.
OTOH, is cards.dll being used by any program other than Microsoft's Solitaire? If it isn't, then it's rather useless to care about the 16/32bit distinction anyway.
I'm with you on this one, but if the Windows loader can do the 16/32 separation and we can't we may need to fix that.
I think I wouldn't feel too uncomfortable with providing the 32bit cards.dll only, even though this is a less preferrable situation.
I'm with you.
Andreas
Shachar