"us" == us <us(a)the-edmeades.demon.co.uk> writes:
us> While debugging a game which only installs if we use the windows us> msvcrt, I have identified the problem but dont know how to fix it! us> The problem revolves around the function us> MSVCRT_type_info_raw_name. This is defined as stdcall, but us> disassembling the windows version, it clearly shows use of a calling us> convention I had never heard of, 'thiscall'. According to the MSDN, us> thiscall is stdcall BUT the 'this' pointer on x86 machines is stored us> in the ECX register. us> How can we fix this? us> My thought: Change the definition to not take a ptr arg, and define us> a local, this as being in the ECX register, but (a) I dont know how us> to do this, and (b) is not a solution for winelib applications. us> For now I can continue having put the msvcrt.dll from another us> machine in, but it would be nice to solve this issue. I'd also guess us> it affects more than just that one function. We have the -register adder in the spec file. Look at e.g. how __CxxFrameHandler is defined in msvcrt.spec and implemented in dlls/msvcrt/cppexcept.c. Great, I also noticed an error in some function of the MSVCRT_type_ group of calls with Altera's Quartus package, but couldn't figure out... Bye -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------