Way back almost three years ago, Roderick Colenbrander posted about Visual Basic support on Wine; see http://www.kerneltraffic.org/wine/wn20021115_144.html#10
He put together a little suite of four tiny test apps; you can still download them at http://www.xs4all.nl/~sailsup/wine-vb.tar.gz Of the four test apps, only one runs properly now -- the one that puts up a button. The ones that put up anything more ambitious all fail.
The one app he provides an installer for seems to install properly, but when you run the installed app, it crashes with fixme:ole:ITypeInfo_fnGetRefTypeInfo Can't find pRefType for ref 19 wine: Unhandled exception (thread 0009), starting debugger... WineDbg starting on pid 0x8 Unhandled exception: page fault on read access to 0x00000010 in 32-bit code (0x230f4f31). In 32 bit mode. Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:230f4f31 ESP:7b92f8e0 EBP:7b92f948 EFLAGS:00010246( - 00 -RIZP1) EAX:00000004 EBX:00000020 ECX:7b92f8f4 EDX:7acc2d10 ESI:7acc2d24 EDI:7acc2ab8 Stack dump: 0x7b92f8e0: 7acc2d10 7b92f8f4 7acc2d40 7bcbc378 0x7b92f8f0: 7acc2d10 7b92f948 230f4ab8 7bcbc378 0x7b92f900: 7acc2d24 7bcbd7e8 7acc2ab8 7acc0630 0x7b92f910: 7b58f480 7b55dc34 7b5602e0 00000000 0x7b92f920: 7bccc658 0000000c 00000032 00000011 0x7b92f930: 7acc2ad0 7acc2ab8 7bcbd7c8 7b92f984 Backtrace: =>1 0x230f4f31 in dbgrid32.ocx (+0x34f31) (0x7b92f948) 2 0x230e9bef in dbgrid32.ocx (+0x29bef) (0x7b92f990) 3 0x230e7533 in dbgrid32.ocx (+0x27533) (0x7b92f9d8) 4 0x230c3bee in dbgrid32.ocx (+0x3bee) (0x7b92fa0c) 5 0x230cd069 in dbgrid32.ocx (+0xd069) (0x7b92fa80) err:dbghelp:pe_load_dbg_file -Unable to peruse .DBG file DLL\MSVBVM60.dbg ("DLL\MSVBVM60.dbg") 6 0x66068eae in msvbvm60 (+0x68eae) (0x7b92fad8) 7 0x6606c750 in msvbvm60 (+0x6c750) (0x7b92fae8) 8 0x6601ed49 in msvbvm60 (+0x1ed49) (0x7b92fb20) 9 0x6601dfbf EVENT_SINK_AddRef+0xc68 in msvbvm60 (0x7b92fb4c) 10 0x6601debc EVENT_SINK_AddRef+0xb65 in msvbvm60 (0x7b92fb74) 11 0x6601df1e EVENT_SINK_AddRef+0xbc7 in msvbvm60 (0x7b92fba4) 12 0x6601de55 EVENT_SINK_AddRef+0xafe in msvbvm60 (0x7b92fbdc) 13 0x6601d852 EVENT_SINK_AddRef+0x4fb in msvbvm60 (0x7b92fc3c) 14 0x6601d745 EVENT_SINK_AddRef+0x3ee in msvbvm60 (0x7b92fc5c) 15 0x6601d70a EVENT_SINK_AddRef+0x3b3 in msvbvm60 (0x7b92fcb4) 16 0x6608682e in msvbvm60 (+0x8682e) (0x7b92fcf0) 17 0x6603acee in msvbvm60 (+0x3acee) (0x7b92fe40) 18 0x66011cc0 BASIC_CLASS_AddRef+0xf0b in msvbvm60 (0x7b92fe64) 19 0x6600e218 ThunRTMain+0x3f6 in msvbvm60 (0x7b92fe84) 20 0x6600df77 ThunRTMain+0x155 in msvbvm60 (0x7b92fea4) 21 0x6600de7d ThunRTMain+0x5b in msvbvm60 (0x7b92ff24) 22 0x00401132 EntryPoint+0xa in db2 (0x7b92fff4) 23 0xf6fc5571 wine_switch_to_stack+0x11 in libwine.so.1 (0x00000000) 0x230f4f31: call *0xc(%eax) fixme:winedbg:be_i386_is_func_call Unsupported yet call insn (0x10) at 0x230f4f31
I'd file a bug report but I have to run. Could somebody have a look?
Dan Kegel wrote:
Way back almost three years ago, Roderick Colenbrander posted about Visual Basic support on Wine; see http://www.kerneltraffic.org/wine/wn20021115_144.html#10
He put together a little suite of four tiny test apps; you can still download them at http://www.xs4all.nl/~sailsup/wine-vb.tar.gz Of the four test apps, only one runs properly now -- the one that puts up a button. The ones that put up anything more ambitious all fail.
The one app he provides an installer for seems to install properly, but when you run the installed app, it crashes with fixme:ole:ITypeInfo_fnGetRefTypeInfo Can't find pRefType for ref 19 wine: Unhandled exception (thread 0009), starting debugger... WineDbg starting on pid 0x8 Unhandled exception: page fault on read access to 0x00000010 in 32-bit code (0x230f4f31). In 32 bit mode. Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:230f4f31 ESP:7b92f8e0 EBP:7b92f948 EFLAGS:00010246( - 00 -RIZP1) EAX:00000004 EBX:00000020 ECX:7b92f8f4 EDX:7acc2d10 ESI:7acc2d24 EDI:7acc2ab8 Stack dump: 0x7b92f8e0: 7acc2d10 7b92f8f4 7acc2d40 7bcbc378 0x7b92f8f0: 7acc2d10 7b92f948 230f4ab8 7bcbc378 0x7b92f900: 7acc2d24 7bcbd7e8 7acc2ab8 7acc0630 0x7b92f910: 7b58f480 7b55dc34 7b5602e0 00000000 0x7b92f920: 7bccc658 0000000c 00000032 00000011 0x7b92f930: 7acc2ad0 7acc2ab8 7bcbd7c8 7b92f984 Backtrace: =>1 0x230f4f31 in dbgrid32.ocx (+0x34f31) (0x7b92f948) 2 0x230e9bef in dbgrid32.ocx (+0x29bef) (0x7b92f990) 3 0x230e7533 in dbgrid32.ocx (+0x27533) (0x7b92f9d8) 4 0x230c3bee in dbgrid32.ocx (+0x3bee) (0x7b92fa0c) 5 0x230cd069 in dbgrid32.ocx (+0xd069) (0x7b92fa80) err:dbghelp:pe_load_dbg_file -Unable to peruse .DBG file DLL\MSVBVM60.dbg ("DLL\MSVBVM60.dbg") 6 0x66068eae in msvbvm60 (+0x68eae) (0x7b92fad8) 7 0x6606c750 in msvbvm60 (+0x6c750) (0x7b92fae8) 8 0x6601ed49 in msvbvm60 (+0x1ed49) (0x7b92fb20) 9 0x6601dfbf EVENT_SINK_AddRef+0xc68 in msvbvm60 (0x7b92fb4c) 10 0x6601debc EVENT_SINK_AddRef+0xb65 in msvbvm60 (0x7b92fb74) 11 0x6601df1e EVENT_SINK_AddRef+0xbc7 in msvbvm60 (0x7b92fba4) 12 0x6601de55 EVENT_SINK_AddRef+0xafe in msvbvm60 (0x7b92fbdc) 13 0x6601d852 EVENT_SINK_AddRef+0x4fb in msvbvm60 (0x7b92fc3c) 14 0x6601d745 EVENT_SINK_AddRef+0x3ee in msvbvm60 (0x7b92fc5c) 15 0x6601d70a EVENT_SINK_AddRef+0x3b3 in msvbvm60 (0x7b92fcb4) 16 0x6608682e in msvbvm60 (+0x8682e) (0x7b92fcf0) 17 0x6603acee in msvbvm60 (+0x3acee) (0x7b92fe40) 18 0x66011cc0 BASIC_CLASS_AddRef+0xf0b in msvbvm60 (0x7b92fe64) 19 0x6600e218 ThunRTMain+0x3f6 in msvbvm60 (0x7b92fe84) 20 0x6600df77 ThunRTMain+0x155 in msvbvm60 (0x7b92fea4) 21 0x6600de7d ThunRTMain+0x5b in msvbvm60 (0x7b92ff24) 22 0x00401132 EntryPoint+0xa in db2 (0x7b92fff4) 23 0xf6fc5571 wine_switch_to_stack+0x11 in libwine.so.1 (0x00000000) 0x230f4f31: call *0xc(%eax) fixme:winedbg:be_i386_is_func_call Unsupported yet call insn (0x10) at 0x230f4f31
I'd file a bug report but I have to run. Could somebody have a look?
The application uses DBGRID32.OCX, and this particular control has problems running under Wine. I found this same bug and sent a patch in order to fix it (OLEAUT32: add additional condition for creation of interface). The patch I sent is attached in this message too.
Alex Villacís Lasso
On 10/24/05, Alex Villacís Lasso a_villacis@palosanto.com wrote:
The application uses DBGRID32.OCX, and this particular control has problems running under Wine. I found this same bug and sent a patch in order to fix it (OLEAUT32: add additional condition for creation of interface). The patch I sent is attached in this message too.
Thanks, I'll try it tonight.
Did you address the feedback from Robert Shearman yet (cf. http://www.mail-archive.com/wine-devel@winehq.org/msg20180.html)? Maybe that's why this patch hasn't made it in yet.
On 10/24/05, Alex Villacís Lasso a_villacis@palosanto.com wrote:
The application uses DBGRID32.OCX, and this particular control has problems running under Wine. I found this same bug and sent a patch in order to fix it (OLEAUT32: add additional condition for creation of interface). ... [http://www.mail-archive.com/wine-devel@winehq.org/msg20180.html]
It does keep the app from crashing. I removed the unneeded casts as Robert Shearman suggested:
--- dlls/oleaut32/typelib.c 18 Oct 2005 14:09:47 -0000 1.171 +++ dlls/oleaut32/typelib.c 25 Oct 2005 06:29:48 -0000 @@ -5213,9 +5213,11 @@ ITypeInfoImpl *This = (ITypeInfoImpl *)iface; HRESULT result = E_FAIL;
- if (hRefType == -1 && - (((ITypeInfoImpl*) This)->TypeAttr.typekind == TKIND_DISPATCH) && - (((ITypeInfoImpl*) This)->TypeAttr.wTypeFlags & TYPEFLAG_FDUAL)) + if ((hRefType == -1 && + (This->TypeAttr.typekind == TKIND_DISPATCH) && + (This->TypeAttr.wTypeFlags & TYPEFLAG_FDUAL)) + || ((This->TypeAttr.typekind == TKIND_DISPATCH) && + (This->TypeAttr.wTypeFlags & TYPEFLAG_FDISPATCHABLE))) { /* when we meet a DUAL dispinterface, we must create the interface * version of it.