Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-Id: <199910311514.JAA21416@pluto.xraylith.wisc.edu> To: "Colin Peters" cc: "GNU-win32" , uf657 AT victoria DOT tc DOT ca Subject: Re: mingw32 DLL getting main args? In-Reply-To: Your message of "Sun, 31 Oct 1999 22:39:29 +0900." Date: Sun, 31 Oct 1999 09:14:48 -0600 From: Mumit Khan "Colin Peters" writes: > > The reason DLLs call getmainargs to parse the command line list > is so that they can provide the MS-like _argc and _argv variables for > access by functions within the DLL. Check init.c, which is #included > (yuck) in dllcrt1.c. If you like you can remove the declarations from > stdlib.h and work up a DLL version of init.c to remove the dependency > of your DLL on the C run-time library. (I suspect this hasn't changed > in Mumit's version, I must admit I only checked my source.) > > I suppose the other reason I didn't worry much about this was that I > wasn't expecting people to write much DLL code without calling any > C library functions. We can actually avoid some of these issues by importing argc and argv from the CRTDLL and MSVCRT directly instead of providing static definitions created at startup. I believe that's what MSVCRT dynamic startup does, and Mingw currently provides the behaviour of static LIBC instead. It works of course, and that's probably the reason why it hasn't been a problem till now. I'll take a look at the DLL issue and see what we can do without breaking existing code. Colin, if you would like a newer snapshot, please let me know. Regards, Mumit -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com