Subject Re: [firebird-support] Firebird server not always starts at Windows startup
Author Helen Borrie
At 07:00 AM 29/01/2007, you wrote:
>hello Helen,
>
>sorry to come back so late, but I was busy in the last week.

Well, so was I, so I can't really remember much about this thread.


> > No, you need to look for the dependencies for whatever
> > RAS services you are using for your LAN, and add them
> > to the Guardian's dependencies list.
>
>I have used the program "Dependency Walker" against fbclient.dll and it
>returned the following problems:
>
>Warning: At least one delay-load dependency module was not found.
>File C:\Programmi\Firebird\Firebird_2_0\bin\DWMAPI.DLL not found

That's a Windows Vista dll. (It's the Desktop Manager for
Vista) Weird. AFAIK, Fb 2.0 doesn't have any compiler switches for
Vista. I think the fact that the search path report resolves
ultimately to the Firebird bin directory at least tells you that your
walker program didn't find the DLL in the system path. At the most,
I think it is telling you that, somewhere in the dependency chain is
another module, needed by Fbserver, that can't load because it
depends on that one.


>Warning: At least one module has an unresolved import due to a missing
>export function in a delay-load dependent module.
>
>C:\WINDOWS\SYSTEM32\MPR.DLL is marked in red
>C:\WINDOWS\SYSTEM32\SHLWAPI.DLL is marked in red and with a hourglass,
>meaning it is a delay-load module

A cursory googling seems to point to the .NET framework as a source
of those two - again, not relevant (directly) to Firebird.

>Is this meaningful to individuate this problem?

This question I can't even comment on, since I don't understand
it. But if you mean should you take it to firebird-devel, yes, I
think so. If the walker program is accurately identifying a
dependency on a DLL that only comes with Vista, it's at least
theoretically possible that the Windows build was compiled with a wrong flag.

On the other hand, it might be just a localised "dll-hell"
situation. Both the server and the clients need the following
run-time files to be present:

msvcp71.dll
msvcr71.dll

If your clients and server are using the new international stuff then
they both need need the icu* dlls present and visible. For the
server, they are visible. For the clients, you will need to make them so.

There are copies of all of these in Firebird's \bin directory. The
MS run-times have to be in the system directory; AFAIK, the ICU
files, which are third-party, can stay where they are, as long as
there is a PATH entry for the Firebird \bin directory.

Sorry I can't contribute anything more useful...clues only here, not
solutions...

./heLen