Wine has the ability to mimic the behavior of different versions of Windows. In general, the biggest difference is whether Wine behaves as a Win9x version or an NT version. Some applications require a specific behavior in order to function and changing this setting may cause a buggy app to work.
Wine default Windows version is Windows XP. Some newer applications may refuse to start unless you set the Windows version to Vista or higher, while some older applications may perform better if you choose Windows Note: versions of Windows prior to XP are only available for selection in winecfg in 32 bit wineprefixes.
Within the tab you'll notice there is a Default Settings entry. If you select that you'll see the current default Windows Version for all applications. A troublesome application is best configured separately from the Default Settings. To do that:. Likewise, some applications require specific libraries in order to run. Wine reproduces the Windows system libraries so-called native DLLs with completely custom versions designed to function exactly the same way but without requiring licenses from Microsoft.
Wine has many known deficiencies in its built-in versions, but in many instances the functionality is sufficient. Using only builtin DLLs ensures that your system is Microsoft-free. It's not always possible to run an application on builtin DLLs, so sometimes native versions will be recommended as a workaround for a specific problem. Native versions of these DLLs do not work: kernel These libraries require low-level Windows kernel access that simply doesn't exist within Wine. With that in mind, once you've copied the DLL you just need to tell Wine to try to use it.
You can configure Wine to choose between native and builtin DLLs at two different levels. If you have Default Settings selected in the Applications tab, the changes you make will affect all applications. Or, you can override the global settings on a per-application level by adding and selecting an application in the Applications tab.
To add an override for FOO. By default the new load order will be native Windows libraries before Wine builtin ones Native then Builtin. You can also choose native only, builtin only, or disable it altogether. In the latter case, check that you have installed your program correctly. Most often applications will assume that a required redistributable package has already been installed and subsequently fail to run when the required dependencies are not met. Redistributable packages which install the necessary runtimes can be obtained through the use of winetricks.
Note these components are subject to their own license and are not part of the Wine project. You should refer to the application's AppDB entry for advice on what is required.
There are basically five different graphics settings you can configure. For most people the defaults are fine. The first setting primarily affect games and is somewhat self-explanatory. You can prevent the mouse from leaving the window of a full-screen program e. That is mostly needed when using a virtual desktop. You may find it helpful to tick Emulate a virtual desktop. In this case, all programs will run in a separate window.
You may find this useful as a way to test buggy games that change possibly unsuccessfully the screen resolution. Confining them to a window can allow for more control over them at the possible expense of decreased usability.
Sizes you might want to try are x the default or x Windows requires a fairly rigid drive configuration that Wine imitates. Most people are familiar with the standard notation of the A: drive representing the floppy disk, the C: drive representing the primary system disk, etc. Wine uses the same concept and maps those drives to the underlying native filesystem.
Wine drive configuration is relatively simple. In winecfg under the Drives tab you'll see buttons to add and remove available drives. When you choose to add a drive, a new entry will be made and a default drive mapping will appear. You can change where this drive points to by changing what's in the Path: box.
If you're unsure of the exact path you can choose Browse to search for it. Removing a drive is as easy as selecting the drive and clicking Remove. Winecfg has the ability to automatically detect the drives available on your system. It's recommended you try this before attempting to configure drives manually.
Simply click on the Autodetect button to have Wine search for drives on your system. You may be interested in configuring your drive settings outside of winecfg , in which case you're in luck because it's quite easy. Wine automatically sets up two drives the first time you run Wine:. Take note of the DOS-style naming convention used for links - the format is a letter followed by a colon, such as a:.
Wine can work with quite a few different audio subsystems. You can see the selected driver that Wine figures out for you under the Audio tab. You can manually select which device will be used for Output, Input, Voice output and Voice input. For example you can choose the digital output of your sound device instead of the analog one. Wine can load Windows themes if you have them available. While this certainly isn't necessary in order to use Wine or applications, it does allow you to customize the look and feel of a program.
Wine supports the newer MSStyles type of themes. Unlike the older Microsoft Plus! This is more or less the same kind of theming that modern Linux desktops have supported for years. If you'd like to try this out:.
All of the settings you change in winecfg , with exception of the drive settings, are ultimately stored in the registry. In Windows, this is a central repository for the configuration of applications and the operating system. Likewise, Wine implements a registry and some settings not found in Winecfg can be changed within it there's actually more of a chance you'll need to dip into the registry to change the settings of an application than Wine itself.
Now, the fact that Wine itself uses the registry to store settings has been controversial. Some people argue that it's too much like Windows. To counter this there are several things to consider. First, it's impossible to avoid implementing a registry simply because applications expect to be able to store their settings there.
In order for Wine to store and access settings in a separate configuration file would require a separate set of code to basically do the same thing as the Win32 APIs Wine already implements. But here are the basic registry keys you might need to know about for now:. Now, what you're probably wondering is how that translates into Wine structure.
These files are automatically created the first time you use Wine. A set of global settings is stored in the wine. The first time you run Wine the wine. The registry is also updated automatically if wine. Note: Older Wine versions before 1. This is no longer necessary. It is not advisable to edit these files to modify the registry as they are managed by Wine internally.
Use regedit. An easy way to access and change the registry is with the regedit tool. Similar to the Windows program it replaces, regedit serves to provide a system level view of the registry containing all of the keys. When you start it, you'll immediately notice that the cryptic keys displayed in the text file are organized in a hierarchical fashion. To navigate through the registry, click on the keys on the left to drill down deeper.
To delete a key, click on it and choose Delete from the Edit menu. To add a key or value, locate where you want to put it and choose New from the Edit menu. Likewise, you modify an existing key by highlighting it in the right-hand window pane and choosing Modify from the Edit menu. Another way to perform these same actions is to right-click on the key or value.
Most of the settings you change within winecfg are written to this area of the registry. With the above file structure, it is possible for a system administrator to configure the system so that a system Wine installation and applications can be shared by all the users, and still let the users all have their own personalized configuration.
An administrator can, after having installed Wine and any Windows application software he wants the users to have access to, copy the resulting system. You might be tempted to do the same for user. Every user should have their own copy of that file along with the permissions to modify it. You'll want to pay attention to drive mappings. If you're sharing the system. As a general rule of thumb, the closer you keep your drive mappings to the default configuration, the easier this will be to manage.
You may or may not be able to share some or all of the actual c: drive you originally installed the application to. A final word of caution: be careful with what you do with the administrator account - if you do copy or link the administrator's registry to the global registry, any user might be able to read the administrator's preferences, which might not be good if sensitive information passwords, personal information, etc is stored there.
Only use the administrator account to install software, not for daily work; use an ordinary user account for that. You'll find an up-to-date list of useful registry keys and values in the wiki.
This section is meant to cover the rest of the things you can configure. It also serves as a collection of tips and tricks to get the most out of using Wine. Since Wine 2. Make sure you have the needed rights to access your computer's serial and parallel ports. On Linux, a user must typically be a member of the sys or dialout group to access serial ports, or the lp group to access parallel ports. After editing the registry, shut down Wine with wineserver -k and the next time Wine runs a program, your changes will take effect.
If you use a version of Wine prior to 2. Learn more. All windows dlls in wine Ask Question. Asked 6 years, 8 months ago. Active 1 year, 7 months ago. Viewed 20k times. Improve this question. Maythux Rehan Ullah Rehan Ullah 2 2 gold badges 5 5 silver badges 16 16 bronze badges. Add a comment. Active Oldest Votes. Improve this answer. Ron Ron But what is the reason.
As far I know all windows apps depend on some sort of dll files which every app searches for in system 32 folder. I don't think you quite know what a. Mateusz Charytoniuk 4 4 bronze badges. Mark Kirby Mark Kirby Oh, thanks for your great answer. It is best to uninstall your distribution's included package versions and update to the latest Wine version available here.
Links to binary packages for Wine for some of the major distros can be found at the WineHQ downloads page. In addition, full source code is available for both the current Wine development tree and every Wine release here.
For help with installing from a package or from source, please consult the Getting Wine chapter of the User's guide. Also, be sure to vote for your favorite application so developers know where to concentrate their efforts. If the application that you want working is not listed in the AppDB there is an easy to use form available for you to add it. If the application is in the database, but lacks a maintainer, you should consider volunteering.
If you are familiar with Wine, own a legal copy of the application, and have a desire to test it, help get or keep it working, and help other users, please apply by clicking the link in the application's page.
Each application should have a supermaintainer, and, if different versions of the application are substantially different such as in Adobe Creative Suite , each subversion should have a maintainer. If you are the developer or publisher of the application, you obviously have a very big incentive to help get your application working under Wine. Fortunately, there are many options available to you other than reporting bugs and hoping someone will fix them. By far the easiest way is to file a bug at Bugzilla , along with a small testcase to add to the Wine test suite.
Another options is to send copies of your software to Wine developers and hope they'll take an interest in getting it working. An alternative option, perhaps more effective, albeit expensive, is to pay Wine developers for their work on your application, either directly through a negotiated contract or indirectly by posting a bounty.
What is its function in Wine? When the Wine server launches, it creates a Unix socket for the current host based on see below your home directory's. If a Wine server was not already running, the first Wine process will start up the Wine server in auto-terminate mode i. This means that there can actually be several separate copies of the Wine server running; one per combination of user and configuration directory. Note that you should not have several users using the same configuration directory at the same time; they will have different copies of the Wine server running and this could well lead to problems with the registry information that they are sharing.
Every thread in each Wine process has its own request buffer, which is shared with the Wine server. When a thread needs to synchronize or communicate with any other thread or process, it fills out its request buffer, then writes a command code through the socket. The Wine server handles the command as appropriate, while the client thread waits for a reply. In some cases, like with the various WaitFor???
The Wine server itself is a single and separate Unix process and does not have its own threading - instead, it is built on top of a large poll loop that alerts the Wine server whenever anything happens, such as a client having sent a command, or a wait condition having been satisfied. There is thus no danger of race conditions inside the Wine server itself - it is often called upon to do operations that look completely atomic to its clients. Because the Wine server needs to manage processes, threads, shared handles, synchronization, and any related issues, all the clients' Win32 objects are also managed by the Wine server, and the clients must send requests to the Wine server whenever they need to know any Win32 object handle's associated Unix file descriptor in which case the Wine server duplicates the file descriptor, transmits it back to the client, and leaves it to the client to close the duplicate when the client has finished with it.
Loading a Windows binary into memory isn't that hard by itself, the hard part is all those various DLLs and entry points it imports and expects to be there and function as expected; this is, obviously, what the entire Wine implementation is all about. Wine contains a range of DLL implementations. Each DLL at least, the bit version, see below is implemented in a Unix shared library.
The file name of this shared library is the module name of the DLL with a. The DLL descriptor, when the DLL is instantiated, is used to create an in-memory PE header, which will provide access to various information about the DLL, including but not limited to its entry point, its resources, its sections, its debug information The DLL descriptor and entry point table is generated by the winebuild tool, taking DLL specification files with the extension.
Resources after compilation by wrc or message tables after compilation by wmc are also added to the descriptor by winebuild. After the DLL has been identified assuming it's still a native one , it's mapped into memory using a dlopen call. The shared library is only used for providing a way to load a piece of code on demand. Wine also relies on the dynamic loading features of the Unix shared libraries to relocate the DLLs if needed the same DLL can be loaded at different addresses in two different processes, and even in two consecutive runs of the same executable if the order in which the DLLs are loaded differs.
The DLL descriptor is registered in the Wine realm using some tricks. The winebuild tool, while creating the code for DLL descriptor, also creates a constructor, that will be called when the shared library is loaded into memory. This constructor will actually register the descriptor to the Wine DLL loader. Hence, before the dlopen call returns, the DLL descriptor will be known and registered.
0コメント