From: MARTIN P. <hic...@gm...> - 2012-05-13 19:08:03
|
Dear Kai, dear list readers, > See as example the export 'DllMain@12@12'. This is the main-entry of > DLL and has just the extension @12 and not @12@12. > So this means this symbol gets the extension doubled. Also an good > question is here why DLL contains at all symbols with @<n> decoration > in export-table. Is there anything i can do about that point directly when invoking gendef? > Other function which seems to be obviously wrong named: > _ZN2SC20CanonCR190Controller14StaticDriverCBEmli@12@12 > _ZN2SC21PaniniIDealController22staticListenerCallbackEP6HWND__jjl@16@16 > _ZN2SC22EpsonTMS1000Controller24staticScanStatusCallbackEmttPc@16@16 > etc. The thing is, i have no idea how they should be named instead. Do you have any def for a DLL with C++ classes exports i could use as an example to understand what would be the required format? > Another point are those 'DATA' exports. Those are variables and can't > be handled by delayed-load code. > Means any access to them will cause simply an seg-fault. Understood. But what if these are not accessed outside the lib? If i remove those entries from the .def, is it sufficient to avoid crashes (Assuming that the binary loading the DLL doesn't make any use of the variables, of course)? > Your suggestion to generate out of an import-library a delayed-import > library might be something you can add to binutils' bugzilla tracker > as extension. Ok, i will request their point of view as well on the matter. Best to you all! Pierre. |