Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs Date: Wed, 30 Jul 2003 21:03:26 -0400 (EDT) From: Igor Pechtchanski Reply-To: cygwin AT cygwin DOT com To: vikramshrowty AT fastmail DOT fm cc: cygwin AT cygwin DOT com Subject: Re: linking with non-cygwin dll In-Reply-To: Message-ID: Importance: Normal MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Wed, 30 Jul 2003 vikramshrowty AT yahoo DOT com wrote: > Hi, > I had posted a query earlier about a cygwin program linking > with a non-cygwin dll. Based on the very helpful responses and some googling > around, I learnt that this is possible. But... > > heres a main.c that links with cygwin1.dll > > int main(void) > { > printf("CYGWIN\n"); > test_dll(); > return(0); > } > > where test_dll is in a dll compiled with -mno-cygwin and is defined > like this... > > __declspec(dllexport) __stdcall void test_dll(void) > { > printf("MSFT %d\n",i); > fflush(stdout); > } > > This works perfectly. But, notice the fflush. If this is removed, > "MSFT" doesnt get printf'ed. I assuming that this is because the > stdout buffer in the microsoft c-library isnt getting flushed > automatically at program exit. > > Any ideas on why?? ..and how to remedy this?? > --Vikram Well, gcc links the Cygwin executable with its own C runtime. MSVCRT is another C runtime. So, when you call the DLL, you have 2 C runtimes competing for the same output stream. This can't be good (in fact, the results are unspecified, IIRC). Thus, the simple remedy is: don't do that. Either only use one runtime for output (whichever one), or fflush and pray. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D. '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "I have since come to realize that being between your mentor and his route to the bathroom is a major career booster." -- Patrick Naughton -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/