https://bugs.winehq.org/show_bug.cgi?id=9095
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|ITypeInfo_fnInvoke failed |DM Genie 2.x fails on |to convert param 1 to |startup with |VT_VARIANT|VT_ARRAY|VT_BYRE |'ITypeInfo_fnInvoke failed |F from VT_I2|VT_BYREF |to convert param 1 to | |VT_VARIANT|VT_ARRAY|VT_BYRE | |F from VT_I2|VT_BYREF'
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming, still present.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/DM Genie
$ WINEDEBUG=+tid,+seh,+loaddll,+process,+vbscript,+ole,+variant wine ./DMGenie.exe >>log.txt 2>&1 ... 0023:trace:vbscript:VBScriptParse_ParseScriptText (0x43e1c70)->(L"Public Sub SkillBonus(FinalCheck)\r\nn = func.GetSkillNum("SWIM")\r\nif n > 0 then\r\n cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck\r\nend if\r\n\r\n'if cRace.PCRace then\r\n'n = func.GetSkillNum("JUMP")\r\n'if n > 0 then\r\n' sp = cr.Speed\r\n' modifier_to_jump = 0\r\n' if sp <= "... (null) (nil) (null) 0 1 2 (nil) 0x33e3ec) 0023:trace:ole:SysAllocStringLen L"func" 0023:trace:ole:SysAllocStringLen L"GetSkillNum" 0023:trace:ole:SysAllocStringLen L"n" 0023:trace:ole:SysAllocStringLen L"n" 0023:warn:vbscript:compile_call_statement converting call expr to assign expr 0023:trace:ole:SysAllocStringLen L"cr" 0023:trace:ole:SysAllocStringLen L"n" 0023:trace:ole:SysAllocStringLen L"cr" 0023:trace:ole:SysAllocStringLen L"SkillTotal" 0023:trace:ole:SysAllocStringLen L"FinalCheck" 0023:trace:ole:SysAllocStringLen L"n" 0023:trace:ole:SysAllocStringLen L"SkillTotal" 0023:trace:vbscript:ScriptDisp_AddRef (0x43e7858) ref=2 0023:trace:vbscript:interp_ret 0023:trace:variant:VariantClear (0x33e2a0->(VT_EMPTY)) 0023:trace:vbscript:ScriptDisp_Release (0x43e7858) ref=1 0023:trace:ole:DispCallFunc retval: 0x33e580->{VT_ERROR} 0023:trace:variant:VariantClear (0x44631b0->(VT_EMPTY)) 0023:trace:variant:VariantClear (0x44631c0->(VT_EMPTY)) 0023:trace:ole:ITypeInfo_fnInvoke -- 0x00000000 0023:trace:ole:ITypeInfo_fnRelease (0x4408cd0)->(1) 0023:trace:ole:ITypeInfo_fnAddRef (0x4408cd0)->ref is 2 0023:trace:ole:SetErrorInfo (0, (nil)) 0023:trace:ole:ITypeInfo_fnInvoke (0x4408cd0)(0x43e1b88,id=2003,flags=0x00000001,0x33e9f0,(nil),0x33e9d0,0x33ea00) 0023:trace:ole:dump_DispParms args=2 named args=0 0023:trace:ole:dump_DispParms args: 0023:trace:ole:dump_Variant 0x33ea34->{VT_I2|VT_BYREF,0x4439b5e} 0023:trace:ole:dump_Variant 0x33ea44->{VT_BSTR,L"SkillBonus"} 0023:trace:ole:ITypeInfo_fnInvoke invoking: L"Run"(3) parm0: L"ProcedureName" parm1: L"Parameters" parm2: L"pvarResult" memid is 000007d3 Param 0: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 1: tdesc.vartype 26 (ptr to safearray of VT_VARIANT) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 2: tdesc.vartype 26 (ptr to VT_VARIANT) u.paramdesc.wParamFlags PARAMFLAG_FOUT PARAMFLAG_FRETVAL u.paramdesc.lpex (nil) funckind: 1 (pure virtual) invkind: 1 (func) callconv: 4 (stdcall) oVft: 116 cParamsOpt: -1 wFlags: 0 elemdescFunc (return value type): tdesc.vartype 25 (VT_HRESULT) u.paramdesc.wParamFlags PARAMFLAGS_NONE u.paramdesc.lpex (nil) helpstring: L"Call a procedure defined in the global module" entry: (null) 0023:trace:ole:ITypeInfo_fnInvoke changing args 0023:trace:ole:dump_Variant 0x33ea44->{VT_BSTR,L"SkillBonus"} 0023:trace:ole:dump_Variant 0x33ea34->{VT_I2|VT_BYREF,0x4439b5e} 0023:trace:variant:VariantChangeTypeEx (0x4390cf8->(VT_I2|VT_BYREF),0x33ea34->(VT_I2|VT_BYREF),0x00000400,0x0000,VT_VARIANT|VT_ARRAY|VT_BYREF) 0023:trace:variant:VariantClear (0x33e538->(VT_EMPTY)) 0023:trace:variant:VariantClear (0x33e528->(VT_EMPTY)) 0023:trace:variant:VariantCopyInd (0x33e528->(VT_EMPTY),0x33ea34->(VT_I2|VT_BYREF)) 0023:trace:variant:VariantClear (0x33e528->(VT_EMPTY)) 0023:trace:variant:VariantCopyInd returning 0x00000000, 0x33e528->(VT_I2) 0023:trace:variant:VariantClear (0x33e538->(VT_EMPTY)) 0023:trace:variant:VariantClear (0x33e528->(VT_I2)) 0023:trace:variant:VariantChangeTypeEx returning 0x80020005, 0x4390cf8->(VT_I2|VT_BYREF) 0023:err:ole:ITypeInfo_fnInvoke failed to convert param 1 to VT_VARIANT|VT_ARRAY|VT_BYREF from VT_I2|VT_BYREF 0023:trace:ole:ITypeInfo_fnInvoke -- 0x80020005 0023:trace:ole:ITypeInfo_fnRelease (0x4408cd0)->(1) 0023:trace:ole:SysAllocStringLen (null) 0023:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83ab23 ip=7b83ab23 tid=0023 0023:trace:seh:raise_exception info[0]=deadcafe 0023:trace:seh:raise_exception info[1]=deadcafe 0023:trace:seh:raise_exception eax=7b826b89 ebx=7b8bb000 ecx=deadcafe edx=0033e8d4 esi=0012b080 edi=0012b080 0023:trace:seh:raise_exception ebp=0033e918 esp=0033e8b4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 ... 0023:trace:variant:VarBstrCat L"Error 13: 'Type mismatch'.\r\nRaised while calculating all skill bonuses. Check the Scripting function Skill Bonus.\r\n\r\nPress Ignore to continue.\r\nIf you press Abort, the program will end and you will lose any unsaved data.\r\nIf this error occurs again, try reinstalling DM Genie.\r\n" --- snip ---
VBScript code:
--- snip --- Public Sub SkillBonus(FinalCheck) n = func.GetSkillNum("SWIM") if n > 0 then cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck end if
'if cRace.PCRace then 'n = func.GetSkillNum("JUMP") 'if n > 0 then ' sp = cr.Speed ' modifier_to_jump = 0 ' if sp <= 20 then ' modifier_to_jump = int((30-sp)/10) * -6 ' elseif sp >= 40 then ' modifier_to_jump = int((sp-30)/10) * +4 ' end if ' cr.SkillTotal(n) = cr.SkillTotal(n) + modifier_to_jump 'end if 'end if
End Sub --- snip ---
$ sha1sum DMGenie_Setup.exe a637a4e98fa09b9311f8cd78be6c9e7ff8bdbd2e DMGenie_Setup.exe
$ du -sh DMGenie_Setup.exe 8.0M DMGenie_Setup.exe
$ wine --version wine-1.7.14-126-g2bb1059
Regards