From: <dan...@ya...> - 2001-07-02 04:17:59
|
--- Paul Garceau <pga...@qw...> wrote: > Hi folks, > > Just had an interesting thought pop up, and wondered if anyone had > tried this before when converting from third-party c++ .dlls to mingw > > c++ .dlls. > > Here's the hypothetical scenario (think I may have done this > sometime > in the past, but can't seem to remember the context of it at this > time): > > I have recently acquired a third-party c++ .dll > I want to dynamically load the third-party .dll for > use under a Mingw c++ application. > I don't have any .a or .def files, only the third-party .dll > > > What do I do? > > (Here's where I need your feedback) > > possible solution (using latest Mingw 1.0 release under Win98) > > When linking the mingw c++ application, I use --demangle option > which > is listed as an option for ld under command.com. I would do this > with > the following command line sequence (since there is no make.exe file > with Mingw 1.0): > > g++ -c myexecutable.cpp -omyexecutable.o > ld myexecutable.o -l3rdprtycpp.dll --demangle -omyexecutable.exe > > What will happen (assuming I have proper command line)? Any ideas? > > Thanks, > > Paul G. > It won't work. Name mangling is not the problem. It is protection. Name mangling is there (in part) to create link-time errors rather than mysterious runtime errors later. Different compilers use different C++ ABI's. That's why you can't link in C++ libs (static or dynamic) built with other compilers (or even different versions of the same compiler - like GCC-2.95 and GCC-3.0). Danny _____________________________________________________________________________ http://messenger.yahoo.com.au - Yahoo! Messenger - Voice chat, mail alerts, stock quotes and favourite news and lots more! |