This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Accessing exported variables in DLL with dlsym().


Hi Andrej,

if you can rebuild the DLL from source, you may do what TCL/TK
did years ago due to this Win* deficiency: Add simple wrapper
functions which just return the pointer to one of your variables.

Bye, Heribert (heribert_dahms@icon-gmbh.de)

> -----Original Message-----
> From:	Andrej Borsenkow [SMTP:Andrej.Borsenkow@mow.siemens.ru]
> Sent:	Thursday, July 06, 2000 10:59
> To:	cygwin@sourceware.cygnus.com
> Subject:	Accessing exported variables in DLL with dlsym().
> 
> 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 <dlfcn.h>
> #include <stdio.h>
> 
> main() {
>     int (*foo)(void);
>     void *libfoo;
> 
>     libfoo = dlopen ("libfoo.dll", 0);
>     foo = dlsym (libfoo, "foo");
>     foo();
> }
> 
> foo.c:
> 
> #include <stdio.h>
> #include <dlfcn.h>
> 
> __declspec (dllexport) extern foo (void);
> 
> foo() {
>     char *bar;
>     void *libbar;
> 
>     libbar = dlopen ("libbar.dll", 0);
>     bar = dlsym (libbar, "bar");
>     puts (bar);
> }
> 
> 
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe@sourceware.cygnus.com

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]