Hey All,
I've been trying to solve a problem that WINE seems to have tacked quite properly: I need to run a Windows application under Windows OS using custom DLLs in place of Windows-kernel DLLs. For instance, I wanna be able to run the Notepad application loading all its required DLLs from the Windwos/System path but, for instance, user32.dll, that I will provide as a custom implementation.
As I can seem, WINE program loader does the job, but not under Windows. Does anybody have any clue on how to make this "magic" happens on a Windows environment (possibly inside cygwin) ? Does anybody know any other tool capable of providing this functionality ?
Thanks a lot,
FLu-X
Hello,
I've been trying to solve a problem that WINE seems to have tacked
quite properly: I need to run a Windows application under Windows OS using custom DLLs in place of Windows-kernel DLLs. For instance, I wanna be able to run the Notepad application loading all its required DLLs from the Windwos/System path but, for instance, user32.dll, that I will provide as a custom implementation.
As I can seem, WINE program loader does the job, but not under Windows.
Does anybody have any clue on how to make this "magic" happens on a Windows environment (possibly inside cygwin) ? Does anybody know any other tool capable of providing this functionality ?
Provide a user32.dll in the programs directory? I've no Windows to check, but it should work.
Stefan
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Informações wrote:
Hey All,
Hi!
I've been trying to solve a problem that WINE seems to have tacked quite properly: I need to run a Windows application under Windows OS using custom DLLs in place of Windows-kernel DLLs. For instance, I wanna be able to run the Notepad application loading all its required DLLs from the Windwos/System path but, for instance, user32.dll, that I will provide as a custom implementation.
As I can seem, WINE program loader does the job, but not under Windows. Does anybody have any clue on how to make this "magic" happens on a Windows environment (possibly inside cygwin) ? Does anybody know any other tool capable of providing this functionality ?
http://www.winehq.com/?issue=271#Wine DLLs on Windows
- -- Anssi Hannula
Anssi Hannula wrote:
As I can seem, WINE program loader does the job, but not under Windows. Does anybody have any clue on how to make this "magic" happens on a Windows environment (possibly inside cygwin) ? Does anybody know any other tool capable of providing this functionality ?
http://www.winehq.com/?issue=271#Wine DLLs on Windows
The ReactOS guys figured that out a while ago -
Put notepad.exe with your user32.dll renamed to user32.dll.local into a directory and run notepad.exe.
Mike
On 10/28/05, Mike McCormack mike@codeweavers.com wrote:
Put notepad.exe with your user32.dll renamed to user32.dll.local into a directory and run notepad.exe.
I thought you put user32.dll in the directory notepad was in and created a blank user32.dll.local to make the app use your copy.
-- Travis Watkins http://www.realistanew.com
Travis Watkins wrote:
Put notepad.exe with your user32.dll renamed to user32.dll.local into a directory and run notepad.exe.
I thought you put user32.dll in the directory notepad was in and created a blank user32.dll.local to make the app use your copy.
OK, I stand corrected:
"Steven Edwards explained a way to do it..."
"You can make a dummy file in your application directory called application.exe.local to force Windows to use the dlls in the local directory. So say you have IEXPLORE.EXE you would create IEXPLORE.EXE.LOCAL and drop the Mingw compiled dlls in to the application folder and see how it runs."
Hi,
On 10/29/05, Mike McCormack mike@codeweavers.com wrote:
"You can make a dummy file in your application directory called application.exe.local to force Windows to use the dlls in the local directory. So say you have IEXPLORE.EXE you would create IEXPLORE.EXE.LOCAL and drop the Mingw compiled dlls in to the application folder and see how it runs."
Just a added note if anyone wants to work on this before Wine 1.0 it would be nice because it would mean users could do without some dlloverrides for certain installers. I think the logic is not too complex and Julliard was going to try to implement it but if anyone one else wants to it would be cool. He has enough things on his plate. Basicly in the loader at the end of all of the logic for KnownDlls and the DllSearchPath you check if there is a *.exe.local and it takes priority.
IE5 Setup and certain versions of iTunes use the trick though now that Windows has side-by-side assemblies DllHell is mostly a thing of the past so they don't really use this trick anymore. If you manually extract some versions of the IE installer you will see a dummy exe.local copy of the IE setup wizard. I think this was needed because of version conflicts with the local advpack and wininet on certain verisons of windows.
Thanks Steven
On Saturday 29 Oct 2005 05:19, Mike McCormack wrote:
"You can make a dummy file in your application directory called application.exe.local to force Windows to use the dlls in the local directory. So say you have IEXPLORE.EXE you would create IEXPLORE.EXE.LOCAL and drop the Mingw compiled dlls in to the application folder and see how it runs."
Just an aside, if anyone wants some precompiled DLLs to play with, have a look at: http://www.astro.gla.ac.uk/users/paulm/WRT/CrossBuilt/
There's also a cross-compilation stage in WRT, which produces a fair number of DLLs and Windows executables These are stashed in the same directory as the winetest executables and kept for about a week or so.
As with other files, the URLs http://www.astro.gla.ac.uk/users/paulm/WRT/CrossBuilt/wine-dll-latest.zip and http://www.astro.gla.ac.uk/users/paulm/WRT/CrossBuilt/wine-exe-latest.zip will always get you the latest.
Cheers,
Paul.
PS. Please don't run the winetest.exe from non-cron-triggered builds (i.e. winetest.exe stored inside files matching wine-exe-.*.zip). They are a bit different.
Thanks everyone for the insightful information.
Actually, the solution provided looks quite simple. However, I was trying to make some naive tests one my Windows box and got stuck on something that looks quite simple as well... I just can't find the KERNEL32.DLL library that I expected to be inside the downloadable "wine-dlls-0.9-mingw.zip" package. ;.(
Can anyone confirm me if this package has successfully being build on Windows using MingW ? If so, where should I look for it ? If not, which were the caveats ?
Just another piece of information: I extracted the contents of this package in a temporary directory and placed the notepad.exe executable along with the dummy notepad.exe.local file inside the same directory. When I try to run notepad, I have an error message that reads something like:
"It wasn't possible to find the entry-point for the procedure wine_get_unix_file_name in dynamic library kernel32.dll"
The message is written in portuguese, and this is the best translation that I was able to do. It looks like any other Wine library tries to call a procedure from the Wine kernel32,dll but ends up calling this procedure on the native kernel32.dll. Is that right ?
Any help is greatly appreciated.
FLu-X
----- Original Message ----- From: "Anssi Hannula" anssi.hannula@mbnet.fi To: "Informações" info@sparsi.com Cc: wine-devel@winehq.org Sent: Friday, October 28, 2005 6:01 PM Subject: Re: Custom Windows Program Loader
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Informações wrote:
Hey All,
Hi!
I've been trying to solve a problem that WINE seems to have tacked quite properly: I need to run a Windows application under Windows OS using custom DLLs in place of Windows-kernel DLLs. For instance, I wanna be able to run the Notepad application loading all its required DLLs from the Windwos/System path but, for instance, user32.dll, that I will provide as a custom implementation.
As I can seem, WINE program loader does the job, but not under Windows. Does anybody have any clue on how to make this "magic" happens on a Windows environment (possibly inside cygwin) ? Does anybody know any other tool capable of providing this functionality ?
http://www.winehq.com/?issue=271#Wine DLLs on Windows
- -- Anssi Hannula