Hello,
i'm trying to build wine/its dlls with mingw. This fail for some dlls at the linking, eg. comdlg32.dll misses the imports
_IID_IContextMenu, _IID_IShellFolder, _IID_IPersistFolder2, _IID_IShellBrowser, _IID_ICommDlgBrowser, _IID_IShellView, _SID_STopLevelBrowser
My investigations are showing that mingw has the missing imports in libshell32.a., but the linker links against wine's shell32.dll.
The missing symbols are also in wine's libuuid.a, but this is not used because the linker does not see the file. When i extend the linker call with -L../../dlls/uuid i can link the comdlg32.dll successfully..
I have tried to find the symbols with strings on my win2k box, but the symbols are not there.
So the first question is: What is the correct way to build the dll?
The second question when we agreed on the first one is: Can someone please fix configure/Makefile.in to work properly .
Thanks Stefan
Hi Stefan,
On Sunday 25 February 2007 18:13, Stefan Leichter wrote:
This fail for some dlls at the linking, eg. comdlg32.dll misses the imports
_IID_IContextMenu, _IID_IShellFolder, _IID_IPersistFolder2, _IID_IShellBrowser, _IID_ICommDlgBrowser, _IID_IShellView,
These are part of the MinGW's W32api v3.8. I don't know how long they've been in W32api, so you may need to upgrade to this version.
_SID_STopLevelBrowser
The set of patches I have includes a definition for this GUID (as well as many, many others). The complete set of patches (against w32api v3.8) is available from: http://www.astro.gla.ac.uk/users/paulm/Cross/mingw-w32api-patches-2007-02-27...
Using a MinGW tool-chain (that has these patches) I was able to build comdlg32.dll
N.B. The latest batch of patches (that fixed cross-compiling) are due to Stefan! Thanks!
HTH,
Paul.
Am Tuesday 27 February 2007 19:43 schrieb Paul Millar:
Hi Stefan,
On Sunday 25 February 2007 18:13, Stefan Leichter wrote:
This fail for some dlls at the linking, eg. comdlg32.dll misses the imports
_IID_IContextMenu, _IID_IShellFolder, _IID_IPersistFolder2, _IID_IShellBrowser, _IID_ICommDlgBrowser, _IID_IShellView,
These are part of the MinGW's W32api v3.8. I don't know how long they've been in W32api, so you may need to upgrade to this version.
_SID_STopLevelBrowser
This was a stupid error in my hand edited patch
The set of patches I have includes a definition for this GUID (as well as many, many others). The complete set of patches (against w32api v3.8) is available from: http://www.astro.gla.ac.uk/users/paulm/Cross/mingw-w32api-patches-2007-02-2 7.tar.gz
Using a MinGW tool-chain (that has these patches) I was able to build comdlg32.dll
Hello Paul,
can you build comdlg32.dll if you have shell32.dll? If i run make clean in shell32 directory comdlg32.dll builds fine for me. If shell32 is there from a previous build, comdlg32.dll fails for me with the problems described above.
In short it can be said this way:
comdlg32.dll needs to be build shell32.dll and libuuid.a from mingw or from wine, but the "two files" must be used from one source either wine or mingw. It is not possible to use one file from wine and one file from mingw.
But this happend for me currently
When i build wine with mingw the Makefile uses shell32.dll from wine and libuuid from mingw. This gives me the uinresolved symbols.
Bye Stefan
Stefan Leichter wrote:
Am Tuesday 27 February 2007 19:43 schrieb Paul Millar:
On Sunday 25 February 2007 18:13, Stefan Leichter wrote:
The set of patches I have includes a definition for this GUID (as well as many, many others). The complete set of patches (against w32api v3.8) is available from: http://www.astro.gla.ac.uk/users/paulm/Cross/mingw-w32api-patches-2007-02-2 7.tar.gz
Using a MinGW tool-chain (that has these patches) I was able to build comdlg32.dll
can you build comdlg32.dll if you have shell32.dll? If i run make clean in shell32 directory comdlg32.dll builds fine for me. If shell32 is there from a previous build, comdlg32.dll fails for me with the problems described above.
In short it can be said this way:
comdlg32.dll needs to be build shell32.dll and libuuid.a from mingw or from wine, but the "two files" must be used from one source either wine or mingw. It is not possible to use one file from wine and one file from mingw.
But this happend for me currently
When i build wine with mingw the Makefile uses shell32.dll from wine and libuuid from mingw. This gives me the uinresolved symbols.
dumpbin shows that the shell32 import library in the PSDK includes a number of GUID symbols, which we don't currently include in the one generated by Wine. It would appear that at least some of these are also included in the uuid library too, but I don't know why they would be missing from MinGW.