On Mon, Jun 22, 2009 at 09:52:35AM +0300, Jesse Lehrman wrote: > It seems that most of the exports in the 32-bit version have a preceding > underscore while in the 64-bit version they don't. For example: > > python25.lib 32-bit: > _PyFloat_AsDouble > > python25.lib 64-bit: > PyFloat_AsDouble > > Does anybody have an idea of why this is done and how I can get around it?
x86 has a whole slew of calling conventions, and in order to disambiguate between them, symbols are decorated according to the convention used [1]. In this case, a leading underscore means it's cdecl. With x86_64, there's a new and shiny calling convention [2], replacing all the old ones. As there's only one, there's no need to decorate that one with anything in a symbol, thus the lack of _ in your 64-bit symbol. This is all from a Windows perspective of course, as that's your context. As for getting things to do the right thing, I'm unsure. [1] http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspx [2] http://blogs.msdn.com/freik/archive/2005/03/17/398200.aspx -- Lars Viklund | z...@acc.umu.se | 070-310 47 07 _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig