delorie.com/archives/browse.cgi | search |
On Mar 7 16:37, Michel Bardiaux wrote: > > Cygwin applications don't use the WIN32 environment. Rather they have > > their own copy of the environment in a POSIX layout. What happens is > > probably that the OCI lib calls GetEnvironmentString ("TNS_ADMIN",...) > > and gets nothing back, since the variable is just not in the Win32 > > environment of the Cygwin application. > > > > The workaround is to do this before calling ani OCI lib function: > > > > #include <sys/cygwin.h> > > > > cygwin_internal (CW_SYNC_WINENV); > > > > This call copies the POSIX environment over to the Win32 environment > > of the calling process, so the OCI lib functions should find the > > TNS_ADMIN variable when called *after* the above call. > > This worked like a charm. Thank you. > > I suppose the same should be done whenever one calls a function in a non-cygwin DLL that relies on Win32 environment variables? If you don't modify environment variables, you only have to call it once at the start. Otherwise, every time you call setenv or putenv. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |