> -----Original Message-----
> From: owner-pgsql-interfaces@postgreSQL.org
> [mailto:owner-pgsql-interfaces@postgreSQL.org]On Behalf Of Tom Lane
> Sent: Sunday, September 05, 1999 12:21 AM
> To: Magnus Hagander
> Cc: 'David Giffin'; Ken J. Wright; pgsql-interfaces@postgreSQL.org
> Subject: Re: [INTERFACES] Win32 interface
>
>
> Magnus Hagander <mha@sollentuna.net> writes:
> > The problem is that in the DllMain() of the libpq.dll file,
> WSAStartup() is
> > called, and that is required before any winsock functions will work.
> > If you link statically, you have to manually run WSAStartup.
> >
> > This should probably be documented :-)
>
> Didn't we talk about having fe-connect.c call WSAStartup()
> (conditionally compiled of course) to avoid this problem?
>
Sorry,I forgot to take static link cases into account when I proposed
to call WSAStartup() in DllMain().
> ISTM there was some reason it wouldn't work, like maybe you can
> only call WSAStartup once per program, but I don't recall for sure.
We can call WSAStartup() more than once. However,there must be a
call to WSACleanup() for every successful call to WSAStartup()
made by a task. Only the final WSACleanup() for that task does the
actual cleanup.
.
The simplest way may be to call WSAStartup() while connecting and
to call WSACleanup() while finishing(including error cases).
Regards.
Hiroshi Inoue
Inoue@tpf.co.jp