From: Rhett D. H. Ph.D. <rh...@an...> - 2002-05-13 22:15:36
|
Can I compile against a .dll using gcc and MinGW and then dynamically link to it from an executable produced by VC++? As a developer I'd really like to be using gcc to do my work. But, some of the customers for my library are not going to want to change from using VC++. I've been searching for a definitive answer for several hours now. I wrote a simple function. I compiled a .dll and an associated stub .lib library for it. I wrote some code over in VC++ that calls it. I linked against the stub library. Everything went fine. But, Microsoft's "depends" tool does not report the .dll as a dependency of the executable that results. At run time, I can watch execution with the debugger. It appears that the code makes the jump into the stub library, but the stub library then jumps into protected memory. This, of course, results in an error. It's like the .dll never gets loaded. I've also tried run-time linking the .dll. I can successfully LoadLibrary it, but once I've got it loaded, I can't get a handle to the function. Anyone have a suggestion? Thanks! --Rhett |
From: Oscar F. <of...@wa...> - 2002-05-14 05:54:55
|
"Rhett D. Hudson, Ph.D." <rh...@an...> writes: > Can I compile against a .dll using gcc and MinGW and then dynamically > link to it from an executable produced by VC++? [snip] If you work with C++ the answer is 'no'. There is no compatibility among different C++ compilers unless the vendor created the product with that goal in mind (example: Intel with MSVC++) BTW, does anybody know if the new "standard" C++ ABI that comes with gcc 3.x and others allows compatibility of dynamic libraries among different compilers? -- Oscar |
From: <dan...@ya...> - 2002-05-14 22:21:23
|
--- Oscar Fuentes <of...@wa...> wrote: > "Rhett D. Hudson, Ph.D." <rh...@an...> writes: > > > Can I compile against a .dll using gcc and MinGW and then dynamically > > link to it from an executable produced by VC++? > > [snip] > > If you work with C++ the answer is 'no'. > > There is no compatibility among different C++ compilers unless the > vendor created the product with that goal in mind (example: Intel with > MSVC++) > > BTW, does anybody know if the new "standard" C++ ABI that comes with > gcc 3.x and others allows compatibility of dynamic libraries among > different compilers? > 3.x strives for compliance with IA64 ABI standards. The question is: Do other compilers? Strict compliance is not always possible. For example, mingw runtime lacks a function called __cxa_atexit which is needed for standards-compliant destruction of static objects in C++. Danny > -- > Oscar > > > _______________________________________________________________ > > Have big pipes? SourceForge.net is looking for download mirrors. We supply > the hardware. You get the recognition. Email Us: ban...@so... > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users http://briefcase.yahoo.com.au - Yahoo! Briefcase - Save your important files online for easy access! |
From: Oscar F. <of...@wa...> - 2002-05-15 20:01:21
|
Danny Smith <dan...@ya...> writes: > > BTW, does anybody know if the new "standard" C++ ABI that comes with > > gcc 3.x and others allows compatibility of dynamic libraries among > > different compilers? > > > 3.x strives for compliance with IA64 ABI standards. The question > is: Do other compilers? Strict compliance is not always > possible. For example, mingw runtime lacks a function called > __cxa_atexit which is needed for standards-compliant destruction of > static objects in C++. Danny, I read your words with either one of this meanings: 1.- MinGW lacks that function 'cause nobody implemented it. 2.- MinGW lacks that function 'cause it can't be implemented with a reasonable effort given other constraints of the runtime. -- Oscar |
From: <dan...@ya...> - 2002-05-15 20:21:20
|
--- Oscar Fuentes <of...@wa...> wrote: > Danny Smith <dan...@ya...> writes: > > > > BTW, does anybody know if the new "standard" C++ ABI that comes with > > > gcc 3.x and others allows compatibility of dynamic libraries among > > > different compilers? > > > > > > 3.x strives for compliance with IA64 ABI standards. The question > > is: Do other compilers? Strict compliance is not always > > possible. For example, mingw runtime lacks a function called > > __cxa_atexit which is needed for standards-compliant destruction of > > static objects in C++. > > Danny, I read your words with either one of this meanings: > > 1.- MinGW lacks that function 'cause nobody implemented it. > > 2.- MinGW lacks that function 'cause it can't be implemented with a > reasonable effort given other constraints of the runtime. > > -- 1. Is probably more accurate. Danny > Oscar > > > _______________________________________________________________ > > Have big pipes? SourceForge.net is looking for download mirrors. We supply > the hardware. You get the recognition. Email Us: ban...@so... > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users http://briefcase.yahoo.com.au - Yahoo! Briefcase - Save your important files online for easy access! |