[Bug 3591] py2exe does not work properly

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Apr 9 15:24:50 CDT 2014


http://bugs.winehq.org/show_bug.cgi?id=3591

--- Comment #25 from Bernhard Reiter <ockham at raz.or.at> ---
For py2exe to also work, I think there should be another loop iterating over a
DLL's functions, nested in the one mentioned in the previous comment, and which
invokes StatusRoutine with Status set to BindImportProcedure, and with the
current function's name as Parameter.

BTW, I think I have found out the crucial function required to implement this
to be ImageDirectoryEntryToDataEx [1] (with dir set to
IMAGE_DIRECTORY_ENTRY_IMPORT). Similar iterations like the ones sketched here
seem to be found in fixup_imports() (in dlls/ntdll/loader.c) or
dump_dir_imported_functions() (in tools/winedump/pe.c, though that isn't using
win API functions).

So I've tried to implement what I've described in this comment and the previous
one, but unfortunately, I can't seem to figure out the very first part
required: obtaining something that can be used as the "base" parameter for
ImageDirectoryEntryToDataEx from the ImageName string passed to BindImageEx.
I've tried LoadLibrary(ImageName), LoadLibraryExA(ImageName, NULL,
LOAD_LIBRARY_AS_DATAFILE), and MapAndLoad(), but unfortunately, all of them
seem to either import all the PE's symbols in a fashion that collides with the
already loaded ones (in particular in a python-freezing context, like running
"wine C:\\Python27\\python.exe setup.py build" with the test case attached to
this bug report), or not load them in a way that can be used for
ImageDirectoryEntryToDataEx. Maybe someone can help me figure out how to do
this...

[1] http://source.winehq.org/WineAPI/.html

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list