Hi,
I've been looking into wine to see if I can remove the need for a dedicated
windows machine to run some in-house vb6 software including a COM+ layer.
Currently I have my COM files in the System32 folder (as i read something that
suggested that WINE would require the COM to be stored there).
I don't mind where it goes, i registered it using regsvr32 provided by wine.
I have compared the registry against my windows machine, and the COM appears to
have registered successfully.
When i try to run an incredibly small vb app (appA) which only uses a few COM
files i get the following error:
"Run-time error '-2147467259 (80004005)': Automation Error"
"fixme:ole:CoCreateInstance no instance created for interface
{00000000-0000-0000-c000-000000000046} of class {main COM CLSID for appA}, hres
is 0x80004005"
I have created a basic VB6 hello world form program, that runs fine. (So i dont
believe i am missing any VB runtime files)
In order to register the COM i needed to add windows files to Wines'
system32 folder, i also added files that dependencyWalker suggested:
* MSVCP60D
* msvcr71
* msvcp71
* mfc71deu
* mfc71fra
* mfc71jpn
* mfc71chs
* mfc71cht
* mfc71esp
* mfc71ita
* mfc71enu
* mfc71kor
* mfc71u
* mfc71
* mfc42d
* mfcn42d
* mfco42d
* xpsp2res
* msctfime.ime
* asyncfilt
* clbcatq
* comres
* hnetcfg
* imm32
* mfc42
* mpr
* msctf
* msvbvm60
* msvcp60
* secur32
* uxtheme
* ws2help
* wshtcpip
* mswsock
* vbscript
to those with a keen eye, you may notice that some of the files i copied are
built-in to Wine. I didn't realise at the time, but i found all of them in
the 'configure wine, libraries' and set their Wine configuration to
built-in only.
Also, some of the COM is still debug mode, hence needing the development
versions of mfc etc
I ran dependencyWalker on appA on the windows machine and under wine. I compared
the results, analysing the results is not easy however.
I did find that under Wine i got many many lines that look like this:
"GetProcAddress(0x7e860000 [WINEX11.DRV], "AbortDoc" called from
"GDI32.DLL" at address 0x7ecc8a0a and returned NULL. Error: Procedure
not found (127)."
also:
"GetProcAddress(0x7B820000 [KERNEL32.DLL], "IsTNT") called from
"MSVBVM60.DLL" at address 0x73421BE1 and returned NULL. Error:
Procedure not found (127)."
"GetProcAddress(0x7EB50000 [OLE32.DLL], "CLSIDFromProgIDEx")
called from "MSVBVM60.DLL" at address 0x73424E49 and returned NULL.
Error: Procedure not found (127)."
"LoadLibraryA("SXS.DLL") returned NULL. Error: Message 0x%1 not
found in file %2 (317)."
none of which appear in the windows environment.
I hope this is clear, and provides enough information for someone to help or
point me in the correct direction.
Perhaps, Wine just doesn't support this functionality?
Some closure would be greatly appreciated.
Thanks,
Andy