delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/10/28/22:57:07

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT sourceware DOT cygnus DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
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 <billtut AT microsoft DOT com>
To: "'DJ Delorie'" <dj AT delorie DOT com>, 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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019