Overriding of .dll libraries
Overriding of .dll libraries
As far as I know, some application can be made working in Wine if some .dll libraries are replaced by the native ones (from windows distribution).
Could somebody help me?
I do not know, how to find which libraries have to be overriden for this or that particular application.
What should I do to find it out?
Is there any HowTo in internet that explains how to do it step-by-step?
(I found only how to override libraries, but found nothing about how to find the names of libraries that should be overridden.)
Thank you in advance.
Could somebody help me?
I do not know, how to find which libraries have to be overriden for this or that particular application.
What should I do to find it out?
Is there any HowTo in internet that explains how to do it step-by-step?
(I found only how to override libraries, but found nothing about how to find the names of libraries that should be overridden.)
Thank you in advance.
Overriding of .dll libraries
AndriyK <[email protected]> on Sent: Nov 24, 2008 7:42 AM (MST) wrote about [Wine] Overriding of .dll libraries
James McKenzie
Please visit the Applications Database portion of the Wine HQ website and search for your application. The .dll files that need to be changed to native versions will be listed in the how-to section of the application page.As far as I know, some application can be made working in Wine if some .dll libraries are replaced by the native ones (from windows distribution).
Could somebody help me?
James McKenzie
Re: Overriding of .dll libraries
The application is not in the database.James Mckenzie wrote: Please visit the Applications Database portion of the Wine HQ website and search for your application. The .dll files that need to be changed to native versions will be listed in the how-to section of the application page.
James McKenzie

Overriding of .dll libraries
AndriyK <[email protected]> at Nov 24, 2008 8:05 AM (MST) wrote about [Wine] Re: Overriding of .dll libraries
Thank you
James McKenzie
Can you provide the name of the application and if either a full (trial) or demo version is available and where you can download it?
James Mckenzie wrote:The application is not in the database.Please visit the Applications Database portion of the Wine HQ website and search for your application. The .dll files that need to be changed to native versions will be listed in the how-to section of the application page.
James McKenzie
Thank you
James McKenzie
Re: Overriding of .dll libraries
The name of the application "Actio Multimedial" (by Klett)James Mckenzie wrote:AndriyK <[email protected]> at Nov 24, 2008 8:05 AM (MST) wrote about [Wine] Re: Overriding of .dll librariesCan you provide the name of the application and if either a full (trial) or demo version is available and where you can download it?
James Mckenzie wrote:The application is not in the database.Please visit the Applications Database portion of the Wine HQ website and search for your application. The .dll files that need to be changed to native versions will be listed in the how-to section of the application page.
James McKenzie
Thank you
James McKenzie
http://www.amazon.de/Klett-Actio-multim ... 3126231403
I bought it on CD. I do not know whether it is possible to download full or trial version.

Overriding of .dll libraries
On Monday November 24 2008 15:39:42 AndriyK wrote:
WINEDEBUG="+loaddll" wine youapplication.exe
This will provide you with information about what DLLs your application is
using. Depending on the nature of the problem you may try to guess what DLL
to override however there is a possibility that this will not solve your
problem.
Also make sure to cd to the directory where your application's executable
file is located and then run it from current directory like this:
wine yourapplication.exe
Many application will fail to work otherwise.
If above doesn't help and you want further assistance you really need to
describe what exactly your problem is and how to reproduce it step-by-step in
your application; also make sure to provide full terminal output. You can
create it by running your application like this:
wine yourapplication.exe &> /tmp/terminal-output.txt
Then you can post content of the terminal-output.txt.
Thank you for using Wine.
Run this:Gcen wrote:What does it exactly mean "use an application like dependency walker"?You will need to use an application like dependency walker to find out
what files are required to use the application.
What should I do? How do I see what files are required?
Thanks.
WINEDEBUG="+loaddll" wine youapplication.exe
This will provide you with information about what DLLs your application is
using. Depending on the nature of the problem you may try to guess what DLL
to override however there is a possibility that this will not solve your
problem.
Also make sure to cd to the directory where your application's executable
file is located and then run it from current directory like this:
wine yourapplication.exe
Many application will fail to work otherwise.
If above doesn't help and you want further assistance you really need to
describe what exactly your problem is and how to reproduce it step-by-step in
your application; also make sure to provide full terminal output. You can
create it by running your application like this:
wine yourapplication.exe &> /tmp/terminal-output.txt
Then you can post content of the terminal-output.txt.
Thank you for using Wine.
Overriding of .dll libraries
Overriding libraries won't get you very far.
Yes, some (not all) dll's can be replaced with native versions.
Windows libraries are essentially no different from Windows programs,
in that depending on how they work, they may run into unimplemented
parts of Wine and subtle differences in behavior that break them. And
yes, in some cases it will get you past a bug.
L. Rahyen gave a fine explanation of how to find out what dll's an
application is using. Trying to override them one by one is an
approach, but it's not a very good one. If it doesn't work, it gives
you no helpful information. If it does work, all it will tell you is
that Wine's implementation of the particular dll you switched probably
has something wrong with it. It will not lead to a fix in Wine.
Overrides are one of many tools that are available for troubleshooting
and working around bugs. There are probably other things you can do,
but you haven't given any information to determine what they might be.
Please file a bug (and follow up on it when people ask for more
information) so that there is a chance to get the problem fixed in
Wine, even if you do work around it successfully. There's no guarantee
that it will actually get fixed or that any progress will be made in a
reasonable amount of time, but please file a report anyway. We need to
have this sort of information. I don't think it is a lot to ask from a
project that is run by volunteers.
Vincent Povirk
Yes, some (not all) dll's can be replaced with native versions.
Windows libraries are essentially no different from Windows programs,
in that depending on how they work, they may run into unimplemented
parts of Wine and subtle differences in behavior that break them. And
yes, in some cases it will get you past a bug.
L. Rahyen gave a fine explanation of how to find out what dll's an
application is using. Trying to override them one by one is an
approach, but it's not a very good one. If it doesn't work, it gives
you no helpful information. If it does work, all it will tell you is
that Wine's implementation of the particular dll you switched probably
has something wrong with it. It will not lead to a fix in Wine.
Overrides are one of many tools that are available for troubleshooting
and working around bugs. There are probably other things you can do,
but you haven't given any information to determine what they might be.
Please file a bug (and follow up on it when people ask for more
information) so that there is a chance to get the problem fixed in
Wine, even if you do work around it successfully. There's no guarantee
that it will actually get fixed or that any progress will be made in a
reasonable amount of time, but please file a report anyway. We need to
have this sort of information. I don't think it is a lot to ask from a
project that is run by volunteers.
Vincent Povirk
Overriding of .dll libraries
On Mon, Nov 24, 2008 at 9:12 PM, Vincent Povirk
<[email protected]> wrote:
about getting their program running first.
--
-Austin
<[email protected]> wrote:
While filing a bug will help in the long run, most users are worriedOverriding libraries won't get you very far.
Yes, some (not all) dll's can be replaced with native versions.
Windows libraries are essentially no different from Windows programs,
in that depending on how they work, they may run into unimplemented
parts of Wine and subtle differences in behavior that break them. And
yes, in some cases it will get you past a bug.
L. Rahyen gave a fine explanation of how to find out what dll's an
application is using. Trying to override them one by one is an
approach, but it's not a very good one. If it doesn't work, it gives
you no helpful information. If it does work, all it will tell you is
that Wine's implementation of the particular dll you switched probably
has something wrong with it. It will not lead to a fix in Wine.
Overrides are one of many tools that are available for troubleshooting
and working around bugs. There are probably other things you can do,
but you haven't given any information to determine what they might be.
Please file a bug (and follow up on it when people ask for more
information) so that there is a chance to get the problem fixed in
Wine, even if you do work around it successfully. There's no guarantee
that it will actually get fixed or that any progress will be made in a
reasonable amount of time, but please file a report anyway. We need to
have this sort of information. I don't think it is a lot to ask from a
project that is run by volunteers.
Vincent Povirk
about getting their program running first.
--
-Austin
Overriding of .dll libraries
On Tuesday November 25 2008 03:12:07 Vincent Povirk wrote:
impossible to give a better advice in this case (unless you have the program
to test; but even in such case it is usually a lot simpler when user gives
instructions how to reproduce the bug).
appropriate) but before giving such reminder I always trying to make sure
that there *is* a bug to report. From personal experience I know that
sometimes there is no bug to report but just user error or misconfiguration
of some kind. In such cases it is better to prevent user from invalid bug
reporting. Of course detailed description of the problem is essential in
order to make conclusions what is bug and what isn't.
possibility to get the job done but also helps to choose correct component in
bug report.
You are right but there is too little details given so it is almostOverriding libraries won't get you very far.
...
L. Rahyen gave a fine explanation of how to find out what dll's an
application is using. Trying to override them one by one is an
approach, but it's not a very good one.
impossible to give a better advice in this case (unless you have the program
to test; but even in such case it is usually a lot simpler when user gives
instructions how to reproduce the bug).
I often try to remind users about usefulness of bug reporting (whenPlease file a bug (and follow up on it when people ask for more
information) so that there is a chance to get the problem fixed in
Wine, even if you do work around it successfully.
appropriate) but before giving such reminder I always trying to make sure
that there *is* a bug to report. From personal experience I know that
sometimes there is no bug to report but just user error or misconfiguration
of some kind. In such cases it is better to prevent user from invalid bug
reporting. Of course detailed description of the problem is essential in
order to make conclusions what is bug and what isn't.
Actually if it works it is very useful because it not only gives a userIf it does work, all it will tell you is that Wine's implementation of the
particular dll you switched probably has something wrong with it. It will
not lead to a fix in Wine.
possibility to get the job done but also helps to choose correct component in
bug report.
Thank you for your answers.
I've tried to add the application to AppDB, but it have not appeared yet. Probably I have to wait a bit more or I did something wrong.
I do not know whether it is appropriate to report a bug. I am not sure that it is indeed BUG or just a result of INCOMPLETENESS of Wine.
In the former case it is supposed to be working but does not work because of a mistake in the code. In this case the developers might be unaware about the issue and reporting the bug would be indeed helpful. In the latter case, the developers are aware about the incompleteness of Wine and reporting the bug would bring nothing.
Another reason: I do not know how to report a bug. Could you give me a link?
I've tried to add the application to AppDB, but it have not appeared yet. Probably I have to wait a bit more or I did something wrong.
I do not know whether it is appropriate to report a bug. I am not sure that it is indeed BUG or just a result of INCOMPLETENESS of Wine.
In the former case it is supposed to be working but does not work because of a mistake in the code. In this case the developers might be unaware about the issue and reporting the bug would be indeed helpful. In the latter case, the developers are aware about the incompleteness of Wine and reporting the bug would bring nothing.
Another reason: I do not know how to report a bug. Could you give me a link?
The installation seems to run OK. Nothing suspicious is seen in the graphic window. But still, a lot of messages are seen in the terminal. Here they are.
fixme:advapi:LookupAccountNameW (null) L"andriy" (nil) 0x33f77c (nil) 0x33f780 0x33f774 - stub
fixme:advapi:LookupAccountNameW (null) L"andriy" 0x132770 0x33f77c 0x132c10 0x33f780 0x33f774 - stub
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:msi:msi_dialog_maskedit_control mask template is empty
fixme:msi:ACTION_HandleStandardAction unhandled standard action L"SetODBCFolders"
fixme:msi:resolve_keypath UNIMPLEMENTED keypath as ODBC Source
fixme:msi:msi_unimplemented_action_stub RemoveODBC -> 1 ignored L"ODBCDriver" table values
fixme:msi:msi_unimplemented_action_stub UnregisterProgIdInfo -> 5 ignored L"ProgId" table values
fixme:msi:msi_unimplemented_action_stub RemoveShortcuts -> 3 ignored L"Shortcut" table values
fixme:msi:msi_unimplemented_action_stub RemoveFolders -> 1 ignored L"CreateFolder" table values
fixme
DllCanUnloadNow stub
err:msi:ITERATE_InstallODBCDriver ODBC Driver entry not found!
fixme:odbc:SQLConfigDataSourceW (nil) 1 L"Microsoft Access Driver (*.mdb)" L"DSN=Microsoft Access-Datenbank"
fixme:odbc:SQLConfigDataSourceW L"DSN=Microsoft Access-Datenbank"
fixme
DllCanUnloadNow stub
fixme
DllCanUnloadNow stub
fixme
DllCanUnloadNow stub
Nonetheless, the application seems to be installed. There is a directory in "Program Files" with the executable and other files.
(to be continued)
fixme:advapi:LookupAccountNameW (null) L"andriy" (nil) 0x33f77c (nil) 0x33f780 0x33f774 - stub
fixme:advapi:LookupAccountNameW (null) L"andriy" 0x132770 0x33f77c 0x132c10 0x33f780 0x33f774 - stub
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:msi:msi_dialog_maskedit_control mask template is empty
fixme:msi:ACTION_HandleStandardAction unhandled standard action L"SetODBCFolders"
fixme:msi:resolve_keypath UNIMPLEMENTED keypath as ODBC Source
fixme:msi:msi_unimplemented_action_stub RemoveODBC -> 1 ignored L"ODBCDriver" table values
fixme:msi:msi_unimplemented_action_stub UnregisterProgIdInfo -> 5 ignored L"ProgId" table values
fixme:msi:msi_unimplemented_action_stub RemoveShortcuts -> 3 ignored L"Shortcut" table values
fixme:msi:msi_unimplemented_action_stub RemoveFolders -> 1 ignored L"CreateFolder" table values
fixme
err:msi:ITERATE_InstallODBCDriver ODBC Driver entry not found!
fixme:odbc:SQLConfigDataSourceW (nil) 1 L"Microsoft Access Driver (*.mdb)" L"DSN=Microsoft Access-Datenbank"
fixme:odbc:SQLConfigDataSourceW L"DSN=Microsoft Access-Datenbank"
fixme
fixme
fixme
Nonetheless, the application seems to be installed. There is a directory in "Program Files" with the executable and other files.
(to be continued)
When I try to run the application, I obtain a small window entitled "Application Error" with the following message:
Exception EAccessViolation in module Actio Multimedial.exe at 00000000.
Access violation at address 0000000. Writing from address 00000000.
(The message was in German. I translated it.)
After this message the application does not run anymore.
The following information appears in the terminal:
err:ole:CoGetClassObject class {00000507-0000-0010-8000-00aa006d2ea4} not registered
err:ole:create_server class {00000507-0000-0010-8000-00aa006d2ea4} not registered
err:ole:CoGetClassObject no class object {00000507-0000-0010-8000-00aa006d2ea4} could be created for context 0x5
wine: Unhandled exception 0x0eedfade at address 0x0000:0x7b844f10 (thread 0009), starting debugger...
First chance exception: 0xc0000025 in 32-bit code (0x7bc3c10c).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:7bc3c10c ESP:0032f5b4 EBP:0032f618 EFLAGS:00000282( - 00 - -IS1)
EAX:0032f5c0 EBX:7bc8d4c4 ECX:00110054 EDX:00000000
ESI:0032f99c EDI:0032f624
Stack dump:
0x0032f5b4: 0032f5cc 00000086 0032f5f8 c0000025
0x0032f5c4: 00000001 0032f99c 0032fa30 00000000
0x0032f5d4: 00a739cc 004043cd 00a739e0 0032f5f8
0x0032f5e4: 00404410 00a739c8 00a739cc 004a94b8
0x0032f5f4: 004065a5 6c686546 62207265 64206965
0x0032f604: 4f207265 6b656a62 7a726574 7bc3c0c0
Backtrace:
=>1 0x7bc3c10c __regs_RtlRaiseException+0x4c() in ntdll (0x0032f618)
2 0x7bc7bf83 in ntdll (+0x6bf83) (0x0032f978)
3 0x7bc3b806 RtlRaiseException+0x6() in ntdll (0x0032f9f0)
4 0x004acc17 in actio multimedial (+0xacc17) (0x0032fa30)
5 0x004b0c1b in actio multimedial (+0xb0c1b) (0x0032fa60)
6 0x004b1892 in actio multimedial (+0xb1892) (0x0032fa74)
7 0x004b91e0 in actio multimedial (+0xb91e0) (0x0032fa98)
8 0x004216e4 in actio multimedial (+0x216e4) (0x0032fac4)
9 0x00421915 in actio multimedial (+0x21915) (0x0032fb1c)
10 0x00421bc2 in actio multimedial (+0x21bc2) (0x0032fb48)
11 0x00421b01 in actio multimedial (+0x21b01) (0x0032fb64)
12 0x00425ffa in actio multimedial (+0x25ffa) (0x0032fbec)
13 0x004200a7 in actio multimedial (+0x200a7) (0x0032fc0c)
14 0x0041d330 in actio multimedial (+0x1d330) (0x0032fc30)
15 0x0041d4ba in actio multimedial (+0x1d4ba) (0x0032fd50)
16 0x0041d54b in actio multimedial (+0x1d54b) (0x0032fd80)
17 0x00426c7d in actio multimedial (+0x26c7d) (0x0032fec8)
18 0x0046af80 in actio multimedial (+0x6af80) (0x0032feec)
19 0x004f6b25 in actio multimedial (+0xf6b25) (0x0032ff08)
20 0x7b878337 in kernel32 (+0x58337) (0x0032ffe8)
0x7bc3c10c __regs_RtlRaiseException+0x4c in ntdll: subl $4,%esp
Modules:
Module Address Debug info Name (87 modules)
PE 400000- 843000 Export actio multimedial
ELF 7b800000-7b93c000 Export kernel32<elf>
\-PE 7b820000-7b93c000 \ kernel32
ELF 7bc00000-7bca9000 Export ntdll<elf>
\-PE 7bc10000-7bca9000 \ ntdll
ELF 7bf00000-7bf03000 Deferred <wine-loader>
ELF 7e121000-7e134000 Deferred olepro32<elf>
\-PE 7e130000-7e134000 \ olepro32
ELF 7e15c000-7e183000 Deferred msacm32<elf>
\-PE 7e160000-7e183000 \ msacm32
ELF 7e183000-7e19a000 Deferred msacm32<elf>
\-PE 7e190000-7e19a000 \ msacm32
ELF 7e19a000-7e25d000 Deferred libasound.so.2
ELF 7e25d000-7e292000 Deferred winealsa<elf>
\-PE 7e270000-7e292000 \ winealsa
ELF 7e292000-7e2df000 Deferred libgcrypt.so.11
ELF 7e2df000-7e2ef000 Deferred libtasn1.so.3
ELF 7e2ef000-7e321000 Deferred libcrypt.so.1
ELF 7e321000-7e396000 Deferred libgnutls.so.13
ELF 7e396000-7e3b9000 Deferred libk5crypto.so.3
ELF 7e3b9000-7e446000 Deferred libkrb5.so.3
ELF 7e446000-7e46f000 Deferred libgssapi_krb5.so.2
ELF 7e46f000-7e4a2000 Deferred libcups.so.2
ELF 7e4a2000-7e4b6000 Deferred midimap<elf>
\-PE 7e4b0000-7e4b6000 \ midimap
ELF 7e4b6000-7e4ea000 Deferred uxtheme<elf>
\-PE 7e4c0000-7e4ea000 \ uxtheme
ELF 7e4ea000-7e4f3000 Deferred libxcursor.so.1
ELF 7e4f3000-7e4f8000 Deferred libxfixes.so.3
ELF 7e4f8000-7e4fb000 Deferred libxcomposite.so.1
ELF 7e4fb000-7e501000 Deferred libxrandr.so.2
ELF 7e501000-7e509000 Deferred libxrender.so.1
ELF 7e509000-7e50e000 Deferred libxxf86vm.so.1
ELF 7e50e000-7e511000 Deferred libxinerama.so.1
ELF 7e511000-7e531000 Deferred imm32<elf>
\-PE 7e520000-7e531000 \ imm32
ELF 7e531000-7e536000 Deferred libxdmcp.so.6
ELF 7e536000-7e54e000 Deferred libxcb.so.1
ELF 7e54e000-7e551000 Deferred libxau.so.6
ELF 7e551000-7e638000 Deferred libx11.so.6
ELF 7e638000-7e646000 Deferred libxext.so.6
ELF 7e646000-7e64a000 Deferred libgpg-error.so.0
ELF 7e64a000-7e64d000 Deferred libkeyutils.so.1
ELF 7e64d000-7e655000 Deferred libkrb5support.so.0
ELF 7e655000-7e658000 Deferred libcom_err.so.2
ELF 7e65a000-7e6f3000 Deferred winex11<elf>
\-PE 7e670000-7e6f3000 \ winex11
ELF 7e70e000-7e72f000 Deferred libexpat.so.1
ELF 7e72f000-7e759000 Deferred libfontconfig.so.1
ELF 7e759000-7e76e000 Deferred libz.so.1
ELF 7e76e000-7e7de000 Deferred libfreetype.so.6
ELF 7e7de000-7e7e0000 Deferred libxcb-xlib.so.0
ELF 7e7f2000-7e884000 Deferred winmm<elf>
\-PE 7e800000-7e884000 \ winmm
ELF 7e884000-7e8b9000 Deferred winspool<elf>
\-PE 7e890000-7e8b9000 \ winspool
ELF 7e8b9000-7e97b000 Deferred comctl32<elf>
\-PE 7e8c0000-7e97b000 \ comctl32
ELF 7e97b000-7e994000 Deferred version<elf>
\-PE 7e980000-7e994000 \ version
ELF 7e994000-7e9a7000 Deferred libresolv.so.2
ELF 7e9a7000-7e9bb000 Deferred lz32<elf>
\-PE 7e9b0000-7e9bb000 \ lz32
ELF 7e9bb000-7e9da000 Deferred iphlpapi<elf>
\-PE 7e9c0000-7e9da000 \ iphlpapi
ELF 7e9da000-7ea3f000 Deferred rpcrt4<elf>
\-PE 7e9f0000-7ea3f000 \ rpcrt4
ELF 7ea3f000-7eb4e000 Deferred ole32<elf>
\-PE 7ea60000-7eb4e000 \ ole32
ELF 7eb4e000-7ec35000 Deferred oleaut32<elf>
\-PE 7eb70000-7ec35000 \ oleaut32
ELF 7ec35000-7ec89000 Deferred advapi32<elf>
\-PE 7ec40000-7ec89000 \ advapi32
ELF 7ec89000-7ed27000 Deferred gdi32<elf>
\-PE 7eca0000-7ed27000 \ gdi32
ELF 7ed27000-7ee71000 Deferred user32<elf>
\-PE 7ed40000-7ee71000 \ user32
ELF 7ef91000-7ef9c000 Deferred libnss_files.so.2
ELF 7ef9c000-7efa6000 Deferred libnss_nis.so.2
ELF 7efa6000-7efbe000 Deferred libnsl.so.1
ELF 7efbe000-7efc7000 Deferred libnss_compat.so.2
ELF 7efc7000-7efec000 Deferred libm.so.6
ELF f7ca1000-f7ca5000 Deferred libdl.so.2
ELF f7ca5000-f7df4000 Deferred libc.so.6
ELF f7df5000-f7e0d000 Deferred libpthread.so.0
ELF f7e21000-f7f57000 Deferred libwine.so.1
ELF f7f59000-f7f78000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
00000008 (D) C:\Program Files\Klett\Actio\Actio multimedial.exe
00000009 0 <==
0000000c
00000013 0
00000012 0
0000000e 0
0000000d 0
0000000f
00000015 0
00000014 0
00000011 0
00000010 0
00000016
00000017 0
Backtrace:
=>1 0x7bc3c10c __regs_RtlRaiseException+0x4c() in ntdll (0x0032f618)
2 0x7bc7bf83 in ntdll (+0x6bf83) (0x0032f978)
3 0x7bc3b806 RtlRaiseException+0x6() in ntdll (0x0032f9f0)
4 0x004acc17 in actio multimedial (+0xacc17) (0x0032fa30)
5 0x004b0c1b in actio multimedial (+0xb0c1b) (0x0032fa60)
6 0x004b1892 in actio multimedial (+0xb1892) (0x0032fa74)
7 0x004b91e0 in actio multimedial (+0xb91e0) (0x0032fa98)
8 0x004216e4 in actio multimedial (+0x216e4) (0x0032fac4)
9 0x00421915 in actio multimedial (+0x21915) (0x0032fb1c)
10 0x00421bc2 in actio multimedial (+0x21bc2) (0x0032fb48)
11 0x00421b01 in actio multimedial (+0x21b01) (0x0032fb64)
12 0x00425ffa in actio multimedial (+0x25ffa) (0x0032fbec)
13 0x004200a7 in actio multimedial (+0x200a7) (0x0032fc0c)
14 0x0041d330 in actio multimedial (+0x1d330) (0x0032fc30)
15 0x0041d4ba in actio multimedial (+0x1d4ba) (0x0032fd50)
16 0x0041d54b in actio multimedial (+0x1d54b) (0x0032fd80)
17 0x00426c7d in actio multimedial (+0x26c7d) (0x0032fec8)
18 0x0046af80 in actio multimedial (+0x6af80) (0x0032feec)
19 0x004f6b25 in actio multimedial (+0xf6b25) (0x0032ff08)
20 0x7b878337 in kernel32 (+0x58337) (0x0032ffe8)
Exception EAccessViolation in module Actio Multimedial.exe at 00000000.
Access violation at address 0000000. Writing from address 00000000.
(The message was in German. I translated it.)
After this message the application does not run anymore.
The following information appears in the terminal:
err:ole:CoGetClassObject class {00000507-0000-0010-8000-00aa006d2ea4} not registered
err:ole:create_server class {00000507-0000-0010-8000-00aa006d2ea4} not registered
err:ole:CoGetClassObject no class object {00000507-0000-0010-8000-00aa006d2ea4} could be created for context 0x5
wine: Unhandled exception 0x0eedfade at address 0x0000:0x7b844f10 (thread 0009), starting debugger...
First chance exception: 0xc0000025 in 32-bit code (0x7bc3c10c).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:7bc3c10c ESP:0032f5b4 EBP:0032f618 EFLAGS:00000282( - 00 - -IS1)
EAX:0032f5c0 EBX:7bc8d4c4 ECX:00110054 EDX:00000000
ESI:0032f99c EDI:0032f624
Stack dump:
0x0032f5b4: 0032f5cc 00000086 0032f5f8 c0000025
0x0032f5c4: 00000001 0032f99c 0032fa30 00000000
0x0032f5d4: 00a739cc 004043cd 00a739e0 0032f5f8
0x0032f5e4: 00404410 00a739c8 00a739cc 004a94b8
0x0032f5f4: 004065a5 6c686546 62207265 64206965
0x0032f604: 4f207265 6b656a62 7a726574 7bc3c0c0
Backtrace:
=>1 0x7bc3c10c __regs_RtlRaiseException+0x4c() in ntdll (0x0032f618)
2 0x7bc7bf83 in ntdll (+0x6bf83) (0x0032f978)
3 0x7bc3b806 RtlRaiseException+0x6() in ntdll (0x0032f9f0)
4 0x004acc17 in actio multimedial (+0xacc17) (0x0032fa30)
5 0x004b0c1b in actio multimedial (+0xb0c1b) (0x0032fa60)
6 0x004b1892 in actio multimedial (+0xb1892) (0x0032fa74)
7 0x004b91e0 in actio multimedial (+0xb91e0) (0x0032fa98)
8 0x004216e4 in actio multimedial (+0x216e4) (0x0032fac4)
9 0x00421915 in actio multimedial (+0x21915) (0x0032fb1c)
10 0x00421bc2 in actio multimedial (+0x21bc2) (0x0032fb48)
11 0x00421b01 in actio multimedial (+0x21b01) (0x0032fb64)
12 0x00425ffa in actio multimedial (+0x25ffa) (0x0032fbec)
13 0x004200a7 in actio multimedial (+0x200a7) (0x0032fc0c)
14 0x0041d330 in actio multimedial (+0x1d330) (0x0032fc30)
15 0x0041d4ba in actio multimedial (+0x1d4ba) (0x0032fd50)
16 0x0041d54b in actio multimedial (+0x1d54b) (0x0032fd80)
17 0x00426c7d in actio multimedial (+0x26c7d) (0x0032fec8)
18 0x0046af80 in actio multimedial (+0x6af80) (0x0032feec)
19 0x004f6b25 in actio multimedial (+0xf6b25) (0x0032ff08)
20 0x7b878337 in kernel32 (+0x58337) (0x0032ffe8)
0x7bc3c10c __regs_RtlRaiseException+0x4c in ntdll: subl $4,%esp
Modules:
Module Address Debug info Name (87 modules)
PE 400000- 843000 Export actio multimedial
ELF 7b800000-7b93c000 Export kernel32<elf>
\-PE 7b820000-7b93c000 \ kernel32
ELF 7bc00000-7bca9000 Export ntdll<elf>
\-PE 7bc10000-7bca9000 \ ntdll
ELF 7bf00000-7bf03000 Deferred <wine-loader>
ELF 7e121000-7e134000 Deferred olepro32<elf>
\-PE 7e130000-7e134000 \ olepro32
ELF 7e15c000-7e183000 Deferred msacm32<elf>
\-PE 7e160000-7e183000 \ msacm32
ELF 7e183000-7e19a000 Deferred msacm32<elf>
\-PE 7e190000-7e19a000 \ msacm32
ELF 7e19a000-7e25d000 Deferred libasound.so.2
ELF 7e25d000-7e292000 Deferred winealsa<elf>
\-PE 7e270000-7e292000 \ winealsa
ELF 7e292000-7e2df000 Deferred libgcrypt.so.11
ELF 7e2df000-7e2ef000 Deferred libtasn1.so.3
ELF 7e2ef000-7e321000 Deferred libcrypt.so.1
ELF 7e321000-7e396000 Deferred libgnutls.so.13
ELF 7e396000-7e3b9000 Deferred libk5crypto.so.3
ELF 7e3b9000-7e446000 Deferred libkrb5.so.3
ELF 7e446000-7e46f000 Deferred libgssapi_krb5.so.2
ELF 7e46f000-7e4a2000 Deferred libcups.so.2
ELF 7e4a2000-7e4b6000 Deferred midimap<elf>
\-PE 7e4b0000-7e4b6000 \ midimap
ELF 7e4b6000-7e4ea000 Deferred uxtheme<elf>
\-PE 7e4c0000-7e4ea000 \ uxtheme
ELF 7e4ea000-7e4f3000 Deferred libxcursor.so.1
ELF 7e4f3000-7e4f8000 Deferred libxfixes.so.3
ELF 7e4f8000-7e4fb000 Deferred libxcomposite.so.1
ELF 7e4fb000-7e501000 Deferred libxrandr.so.2
ELF 7e501000-7e509000 Deferred libxrender.so.1
ELF 7e509000-7e50e000 Deferred libxxf86vm.so.1
ELF 7e50e000-7e511000 Deferred libxinerama.so.1
ELF 7e511000-7e531000 Deferred imm32<elf>
\-PE 7e520000-7e531000 \ imm32
ELF 7e531000-7e536000 Deferred libxdmcp.so.6
ELF 7e536000-7e54e000 Deferred libxcb.so.1
ELF 7e54e000-7e551000 Deferred libxau.so.6
ELF 7e551000-7e638000 Deferred libx11.so.6
ELF 7e638000-7e646000 Deferred libxext.so.6
ELF 7e646000-7e64a000 Deferred libgpg-error.so.0
ELF 7e64a000-7e64d000 Deferred libkeyutils.so.1
ELF 7e64d000-7e655000 Deferred libkrb5support.so.0
ELF 7e655000-7e658000 Deferred libcom_err.so.2
ELF 7e65a000-7e6f3000 Deferred winex11<elf>
\-PE 7e670000-7e6f3000 \ winex11
ELF 7e70e000-7e72f000 Deferred libexpat.so.1
ELF 7e72f000-7e759000 Deferred libfontconfig.so.1
ELF 7e759000-7e76e000 Deferred libz.so.1
ELF 7e76e000-7e7de000 Deferred libfreetype.so.6
ELF 7e7de000-7e7e0000 Deferred libxcb-xlib.so.0
ELF 7e7f2000-7e884000 Deferred winmm<elf>
\-PE 7e800000-7e884000 \ winmm
ELF 7e884000-7e8b9000 Deferred winspool<elf>
\-PE 7e890000-7e8b9000 \ winspool
ELF 7e8b9000-7e97b000 Deferred comctl32<elf>
\-PE 7e8c0000-7e97b000 \ comctl32
ELF 7e97b000-7e994000 Deferred version<elf>
\-PE 7e980000-7e994000 \ version
ELF 7e994000-7e9a7000 Deferred libresolv.so.2
ELF 7e9a7000-7e9bb000 Deferred lz32<elf>
\-PE 7e9b0000-7e9bb000 \ lz32
ELF 7e9bb000-7e9da000 Deferred iphlpapi<elf>
\-PE 7e9c0000-7e9da000 \ iphlpapi
ELF 7e9da000-7ea3f000 Deferred rpcrt4<elf>
\-PE 7e9f0000-7ea3f000 \ rpcrt4
ELF 7ea3f000-7eb4e000 Deferred ole32<elf>
\-PE 7ea60000-7eb4e000 \ ole32
ELF 7eb4e000-7ec35000 Deferred oleaut32<elf>
\-PE 7eb70000-7ec35000 \ oleaut32
ELF 7ec35000-7ec89000 Deferred advapi32<elf>
\-PE 7ec40000-7ec89000 \ advapi32
ELF 7ec89000-7ed27000 Deferred gdi32<elf>
\-PE 7eca0000-7ed27000 \ gdi32
ELF 7ed27000-7ee71000 Deferred user32<elf>
\-PE 7ed40000-7ee71000 \ user32
ELF 7ef91000-7ef9c000 Deferred libnss_files.so.2
ELF 7ef9c000-7efa6000 Deferred libnss_nis.so.2
ELF 7efa6000-7efbe000 Deferred libnsl.so.1
ELF 7efbe000-7efc7000 Deferred libnss_compat.so.2
ELF 7efc7000-7efec000 Deferred libm.so.6
ELF f7ca1000-f7ca5000 Deferred libdl.so.2
ELF f7ca5000-f7df4000 Deferred libc.so.6
ELF f7df5000-f7e0d000 Deferred libpthread.so.0
ELF f7e21000-f7f57000 Deferred libwine.so.1
ELF f7f59000-f7f78000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
00000008 (D) C:\Program Files\Klett\Actio\Actio multimedial.exe
00000009 0 <==
0000000c
00000013 0
00000012 0
0000000e 0
0000000d 0
0000000f
00000015 0
00000014 0
00000011 0
00000010 0
00000016
00000017 0
Backtrace:
=>1 0x7bc3c10c __regs_RtlRaiseException+0x4c() in ntdll (0x0032f618)
2 0x7bc7bf83 in ntdll (+0x6bf83) (0x0032f978)
3 0x7bc3b806 RtlRaiseException+0x6() in ntdll (0x0032f9f0)
4 0x004acc17 in actio multimedial (+0xacc17) (0x0032fa30)
5 0x004b0c1b in actio multimedial (+0xb0c1b) (0x0032fa60)
6 0x004b1892 in actio multimedial (+0xb1892) (0x0032fa74)
7 0x004b91e0 in actio multimedial (+0xb91e0) (0x0032fa98)
8 0x004216e4 in actio multimedial (+0x216e4) (0x0032fac4)
9 0x00421915 in actio multimedial (+0x21915) (0x0032fb1c)
10 0x00421bc2 in actio multimedial (+0x21bc2) (0x0032fb48)
11 0x00421b01 in actio multimedial (+0x21b01) (0x0032fb64)
12 0x00425ffa in actio multimedial (+0x25ffa) (0x0032fbec)
13 0x004200a7 in actio multimedial (+0x200a7) (0x0032fc0c)
14 0x0041d330 in actio multimedial (+0x1d330) (0x0032fc30)
15 0x0041d4ba in actio multimedial (+0x1d4ba) (0x0032fd50)
16 0x0041d54b in actio multimedial (+0x1d54b) (0x0032fd80)
17 0x00426c7d in actio multimedial (+0x26c7d) (0x0032fec8)
18 0x0046af80 in actio multimedial (+0x6af80) (0x0032feec)
19 0x004f6b25 in actio multimedial (+0xf6b25) (0x0032ff08)
20 0x7b878337 in kernel32 (+0x58337) (0x0032ffe8)
Overriding of .dll libraries
On Tue, Nov 25, 2008 at 4:08 PM, AndriyK <[email protected]> wrote:
--
-Austin
File a bug.Is there any manual explaining what the above messages mean?
Which of them are harmless and which point to the actual error?
Is it a BUG or just INCOMPLETENESS of Wine that prevents the application from working properly?
Thanks.
--
-Austin
Overriding of .dll libraries
On 2008-11-25 (Tuesday) 22:08:20 AndriyK wrote:
from working (or makes it work incorrectly) *is* a bug that should be
reported. So you should report your problem as a bug report. To report a bug,
go to http://bugs.winehq.org (then follow steps described there) and include
in your bug report useful information you already posted here.
Incompleteness of Windows API in Wine which prevent a real-world applicationIs there any manual explaining what the above messages mean?
Which of them are harmless and which point to the actual error?
Is it a BUG or just INCOMPLETENESS of Wine that prevents the application
from working properly?
from working (or makes it work incorrectly) *is* a bug that should be
reported. So you should report your problem as a bug report. To report a bug,
go to http://bugs.winehq.org (then follow steps described there) and include
in your bug report useful information you already posted here.
-
- Level 2
- Posts: 18
- Joined: Wed Nov 26, 2008 3:09 pm
Overriding of .dll libraries
How does "file a bug" answer the question the OP asked?
Like AndriyK, I would like to help Wine by making programmes I use work better. Once I have some clues as to the problem, then you can have a bug report. However, it is very difficult for me to get "under the hood" and be sure that I am not just wasting time - yours even more than mine.
I have tried looking for documentation -
I have tried reading the source code with some limited success- but there is quite a lot of it and it is hard to get an overview that way.
So are the forums not a sensible place to ask the sort of question AndriyK asks and should you not attempt a real answer?
PS. There are good answers in the thread but there are also a lot of non answers - and I am sorry this is a non answer as well.
Like AndriyK, I would like to help Wine by making programmes I use work better. Once I have some clues as to the problem, then you can have a bug report. However, it is very difficult for me to get "under the hood" and be sure that I am not just wasting time - yours even more than mine.
I have tried looking for documentation -
- Where are details of what the messages mean? (the answer usually seems to be "not much")
When it crashes, how does one interpret the crash details? Generic information please - not specific.
I have tried reading the source code with some limited success- but there is quite a lot of it and it is hard to get an overview that way.
So are the forums not a sensible place to ask the sort of question AndriyK asks and should you not attempt a real answer?
PS. There are good answers in the thread but there are also a lot of non answers - and I am sorry this is a non answer as well.
Overriding of .dll libraries
It doesn't. I posted information that did not answer the question.How does "file a bug" answer the question the OP asked?
Someone else had already given what I thought was a good answer, and I
thought bugzilla was worth mentioning.
They are in the source code. If, for example, you have this message:Where are details of what the messages mean? (the answer usually seems to be "not much")
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from 32 to 16
X11DRV_XRandR_SetCurrentMode is the name of the function that printed
this information. You can find the source code for that function by
doing an identifier search for X11DRV_XRandR_SetCurrentMode at
http://source.winehq.org/.
From there you can see the line of code in context. Of course, the
context probably won't give you any insight into what it actually
means, namely that because of X limitations, Wine can't actually
change the screen depth and lies to the application instead. Usually
this is fine; in fact I've never heard of it causing a problem. We
really have no business printing that scary useless thing IMO.
It should never be necessary to document these things. If, as in this
case, there is a common message that is basically never useful, it
should be probably be changed to a WARN or TRACE. If there is a
message that does commonly mean the same thing for users, that
information should be in the message itself, not buried in
documentation. For messages that rarely occur or are only meaningful
to programmers, the source code is enough.
What you're asking for is impossible. You really need a lot ofWhen it crashes, how does one interpret the crash details? Generic information please - not specific.
Mostly the documents do not exist and when I do find something it usually assumes a lot of existing knowledge.
existing knowledge. No royal road and such. I'm going to try anyway
because I am crazy.
Usually the only useful information you can get from crash details is:
1. What was the most immediate bad thing that happened?
2. What function tried to do the bad thing?
3. What functions called the function that tried to do the bad thing?
Usually, the error is an "unhandled page fault" on attempting to read,
write, or execute something. "Page fault" means the program is trying
to do something that does not make sense given its current memory
layout. For example, the address 0x00000000 usually is not assigned
any meaning. If a program tries to call a function at that address, it
will cause a page fault executing 0x00000000. The program has a chance
to recover from things like this; if it doesn't, it crashes.
A "read" is usually a pointer access (*somevar) or
(somevar->attribute), write is usually assignment (somevar = value) or
(somevar++), and execute is usually a function call
(somevar(arguments)).
The "Backtrace" is a list of functions that are currently being
executed. The first one is the one that is running at the time of the
crash. The second function called the first one, the third called the
second, etc. If any involved functions are in a Wine dll, and you have
debugging symbols, it should give you an exact line in the source code
and the values of variables that the time of the crash. If you can't
get this information (either you don't have debugging symbols or all
the involved functions are in a native windows exe or dll), the
backtrace is probably useless.
If you see the RaiseException function at the top of the trace, that
function isn't broken. It means either there's an unimplemented
function (in which case the log will also say "Call to unimplemented
function library.NameOfFunction"), or a program/library has
deliberately raised an exception (which, if not handled, causes a
crash).
If you have to gather more information about a crash, a good step is
often to get a +seh,+relay log and find the trace:seh:raise_exception
lines immediately before the crash. Often what happens just before
that is related.
Often crashes happen because something very bad happened earlier and
now something is wrong with the program state (e.g. somevar should
never be NULL, but now it is for some reason). The crash details only
give you a snapshot in time; they cannot tell you how the program got
into that state. If you can't infer the reason from looking at the
code, you need to gather more information.
Windows API documentation helps a lot. MSDN (the Win32 and COMI have tried reading the source code with some limited success- but there is quite a lot of it and it is hard to get an overview that way.
Development section) is good for looking up specific functions or
areas. If you're really serious, you might even want to pick up a book
about programming for Windows in C.
Of course, you have to start with a good grasp of C.
And I just made it even worse. Whee...PS. There are good answers in the thread but there are also a lot of non answers - and I am sorry this is a non answer as well.
-
- Level 2
- Posts: 18
- Joined: Wed Nov 26, 2008 3:09 pm
Overriding of .dll libraries
As I had a moan in my previous post, can I just say thank you Vincent for the most helpful, constructive and polite answer I have seen in a long while.
I disagree when you say at the end that you have not answered the OP's question - I think you have given the best answer that is possible in the circumstances and he, like me, has to take the answer you gave and store it away and add bits more to it with time and try to use the knowledge you have provided.
At least it provides something we can build on. I am now wiser and that seems to me to be a major part of the function of forums. If Wine wants to build a community, then these are the sort of answers we need. Thank you.
I disagree when you say at the end that you have not answered the OP's question - I think you have given the best answer that is possible in the circumstances and he, like me, has to take the answer you gave and store it away and add bits more to it with time and try to use the knowledge you have provided.
At least it provides something we can build on. I am now wiser and that seems to me to be a major part of the function of forums. If Wine wants to build a community, then these are the sort of answers we need. Thank you.