Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm 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 Date: Thu, 6 Jul 2000 11:20:31 +0200 (CEST) From: Farkas Zsolt To: Andrej Borsenkow cc: cygwin AT sourceware DOT cygnus DOT com Subject: Re: Sorry, resent RE: Accessing exported variables in DLL with dlsym(). In-Reply-To: <000501bfe729$8e656bb0$21c9ca95@mow.siemens.ru> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII [SEEN] Philos Laboratories, game development - http://www.philoslabs.com On Thu, 6 Jul 2000, Andrej Borsenkow wrote: > > (Sorry, I clicked wong button) > > > > > I am trying to port a program that opens dynamic library with > > dlopen() and looks up symbol with dlsym(). This works for > > function reference but not for variable. The porgram is: > > > > main.c: > > > > #include > > #include > > > > main() { > > int (*foo)(void); > > void *libfoo; > > > > libfoo = dlopen ("libfoo.dll", 0); > > foo = dlsym (libfoo, "foo"); > > foo(); > > } > > > > foo.c: > > > > #include > > #include > > > > __declspec (dllexport) extern foo (void); > > > > foo() { > > char *bar; > > void *libbar; > > > > libbar = dlopen ("libbar.dll", 0); > > bar = dlsym (libbar, "bar"); > > puts (bar); > > } > > ... continued ... > > bar.c: > > __declspec (dllexport) char *bar = "Hi! I am bar."; > > Compiled with: > > gcc -c main.c foo.c bar.c > dllwrap --output-exp libfoo.exp --output-lib libfoo.a --output-def > libfoo.def --dllname libfool --export-all-symbols foo.o > dllwrap --output-exp libbar.exp --output-lib libbar.a --output-def > libbar.def --dllname libbar.dll --export-all-symbols bar.o > gcc -o main main.o > > Unfortunately, this program prints nothing (that is, bar appears to be > found - but porbably points to wrong location). IF I bind foo.o with > libbar.a (and declare bar in foo.c as dllimport) I get correct result. > The foo() in main() is correctly found. > > TIA > > -andrej > > > -- > Want to unsubscribe from this list? > Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com > -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com