Can g++ DLLs and main program share variables?

Igor Pechtchanski
Fri Jan 21 01:57:00 GMT 2005

On Thu, 20 Jan 2005, svoboda wrote:

> Thanks for the help re building DLL's with g++. I have DLLs which I
> can build and link with my main code. But the DLLs seem to have
> separate do I load a DLL so that it uses the same
> 'namespace' as my main code?
> Here is a simple example I've built up. The main function calls the
> hello function inside a dll, and hello increments a static 'value'
> variable from 3 to 4. But in the main function, the value variable,
> also defined, still remains at 3.
> How do I get the GOOD output from running './main.exe'?
> Thanks!
> ~David Svoboda
> [snip]
> main.exe:	main.o foo.o
> 	g++ -o main.exe main.o foo.o
> hello.dll:	hello.o foo.o
> 	g++ -shared -o hello.dll hello.o foo.o
You're linking foo.o into both main.exe and hello.dll.  Naturally, the
functions from the DLL use the foo.o value from the DLL, and the ones in
main.exe use the one from foo.o linked into main.exe.

While we're on the topic, I should mention that in Windows, DLLs are
unable to import values from the main program.
      |\      _,,,---,,_
ZZZzz /,`.-'`'    -.  ;-;;,_
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"The Sun will pass between the Earth and the Moon tonight for a total
Lunar eclipse..." -- WCBS Radio Newsbrief, Oct 27 2004, 12:01 pm EDT

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list