X-Spam-Check-By: sourceware.org Date: Wed, 23 Aug 2006 17:48:54 -0400 (EDT) From: Igor Peshansky Reply-To: cygwin AT cygwin DOT com To: Pierre Baillargeon cc: cygwin AT cygwin DOT com Subject: Re: no message or dialog when a DLL is missing In-Reply-To: <44ECC152.3020503@innobec.com> Message-ID: References: <44ECC152 DOT 3020503 AT innobec DOT com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: 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 On Wed, 23 Aug 2006, Pierre Baillargeon wrote: > Hi, > > Problem: when running a program from bash and the program requires a DLL > that is missing (or lacks a particular function), I do not get any error > message nor dialog box. Only a exit status of 128. Can I change this > behavior? > > What I expected is a dialog would pop-up saying "XYZ.dll not found" like > cmd.exe does, for example. > > I've read the cygwin FAQ, documentation, searched google and the mailing > list. The closest I've found so far is the thread "program fails to find > it's DLL" which hints that bash used to pop-up a dialog just like > cmd.exe does but the behavior changed. If this is true, is there > anything option that can be set to get the old behavior? > > Short version info: cygwin 1.5.20, bash 3.1-6. > > Long: > [snipped inline cygcheck output] Thanks for providing your cygcheck output, but next time, please *attach* it instead of including it inline. One thing in your setup is that you have both Cygwin and MKS in your path, and that's just asking for trouble. But I doubt it's the cause of your current problem. You really haven't given us enough to go on here. What is the program, which DLL is it missing, how do you know it requires it, etc, etc. Dynamic loading in Windows can happen in 2 ways -- one is when the DLL name is embedded in the executable, and the Windows loader automatically finds and loads that DLL (and produces the pop-up you are asking about if the DLL cannot be found), and another through the dlopen() function (or LoadLibrary() from the Windows API), where the error handling on missing DLLs is relegated to the program itself. One guess is that your program is trying to load the DLL dynamically, and reports the error via the exit code. Running "cygcheck YOURPROGRAM" should tell you which DLLs are embedded in your executable (and thus should result in a pop-up when missing). Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com ZZZzz /,`.-'`' -. ;-;;,_ Igor Peshansky, Ph.D. (name changed!) |,4- ) )-,_. ,\ ( `'-' old name: Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte." "But no -- you are no fool; you call yourself a fool, there's proof enough in that!" -- Rostand, "Cyrano de Bergerac" -- 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/