This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: no message or dialog when a DLL is missing


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@cs.nyu.edu | igor@watson.ibm.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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]