From: Brian D. <br...@de...> - 2007-04-20 22:05:37
|
Paul Moore wrote: > That would work - but how do I know what number to put after the "@" sign? It's the number of bytes of arguments pushed onto the stack. The easiest way is just to look at the assembler output that gcc generates. > Thanks for the explanation, that helps a lot - I'm still looking for a > solution in this particular case, but at least I now understand what's > going on. If the import lib you have doesn't have the aliases then you'll need to make one yourself. The "dlltool -k" method in the other reply is precisely how it's done for all of the import libraries in w32api. > Just to clarify one point. You're saying that there is NO WAY to compile > C code so that an external reference to foo() links to a symbol foo - it > will always link to foo@NN and you need aliases in the (import) library > to match the two up? No, of course not. If you use the (default) cdecl calling convention there are no @nn decorations. You only get the decorations when using the stdcall calling convention (aka pascal aka WINAPI.) What you can't get is half of one and half of the other: stdcall calling convention but cdecl decorations. Brian |