Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <4D0A23B3F74DD111ACCD00805F31D8100DB9148A@RED-MSG-50> From: Bill Tutt To: "'DJ Delorie'" , steve AT khoral DOT com Cc: cygwin AT sourceware DOT cygnus DOT com Subject: RE: DLL creation problem Date: Thu, 28 Oct 1999 19:56:02 -0700 X-Mailer: Internet Mail Service (5.5.2650.21) > From: DJ Delorie [mailto:dj AT delorie DOT com] > > So how do I make the above assignment (or any global variable > > assignemnt) work as expected? > > What we do is, in the header where you prototype the variable > (i.e. the "extern int foo;" line), add a directive like this: > > extern int foo __declspec(dllimport); > > Note that you should *only* do this for the application; don't do it > for the dll itself. > Whats typically done is something like this: #ifdef BUILD_XYZ #define XYZAPI __declspec(dllexport) #else #define XYZAPI __declspec(dllimport) #endif and just write a header file like so: XYZ.h might contain: extern int foo XYZAPI; Then when you're building the DLL, just define BUILD_XYZ. Bill -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com