Re: Windows Compilation Madness
- From: Jari Williamsson <jari.williamsson@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 2 Jan 2008 13:12:31 -0500
Gary Wright wrote:
Unlink Linux (and *BSD, Mac OS X...), Windows does not come packaged
with a development environment and in fact there are multiple
mutually-incompatible development environments (Cygwin, MinGW, VC6,
VC8). For the most part you can not mix-and-match object code (dlls)
created by these different environments with the biggest problem being
that there is no common memory allocation library.
I assume this is why some Windows software comes distributed with its
own collection of 'standard' dlls compiled in the same development
environment as the underlying application.
DLLs is a Windows standard file format (pretty much like an executable
file with an exported table of names) and can most often be used between
compilers. The thing that I think differ the most in DLLs is how C++
classes are represented, here the different compilers have different
incompatible solutions. Another thing that can differ is stack calling
conventions, but the Windows SDK has a couple of predefined function
prefixes that are compatible across compilers.
Normally, you use an implib tool from your Windows compiler to create a
small lib file that maps to the DLL and are linked statically to your
application. Since DLLs are dynamic, they can be replaced with later
versions as long as the required exported names are still there.
Best regards,
Jari Williamsson
.
- References:
- Windows Compilation Madness
- From: Gary Wright
- Windows Compilation Madness
- Prev by Date: Unsubscribe
- Next by Date: Fwd: Best way to download >1GB files
- Previous by thread: Re: Windows Compilation Madness
- Next by thread: Re: Windows Compilation Madness
- Index(es):
Relevant Pages
|