Reinier Olislagers wrote:
Windows 7 x64.
I've installed the 64 bit client version without problem, checked copy fbclient.dll to system directory. Ok, now client-server applications work.
However: copying fbembed.dll to system32/syswow64 directories gave errors: icuuc30.dll not found. This seems strange as fbclient.dll in the same directory works without problems?!?
(An earlier attempt to copy over fbembed.dll + all icu*.dlls+firebird.msg etc did work but lead to errors with LibreOffice not being able to load the correct msvcrt80 runtime library.)
Can you have a system-wide fbembed.dll? How do you install it?
Mark Rotteveel answers:
SysWoW64 is not for 64 bit dlls, but for 32 bit dlls. Believe it or not on a 64 bit system, the 64 bit dlls go into System32.
fbembed.dll is essentially a Firebird server, it has more dependencies than fbclient.dll. This includes the icu libraries. As a simplification: you need all files in the embedded distribution (you could leave out some of the files, but that might give problems if you use unicode collations).
You shouldn't put embedded in any system folder like WindowsSystem32 (or WindowsSysWoW64 if you use 32 bit embedded). You normally put it either in the folder of the application using embedded, or add its location on the PATH (although that might sometimes cause problems depending on how the application resolves its dependencies).
Can you have a system-wide fbembed.dll? How do you install it?
Put the entire content of the embedded zip kit in a folder on the PATH, and avoid folders that are under UAC-protection, because - for example - writing to firebird.log in protected folders (like Program Files, Windows, etc) requires that the program runs with elevated rights, otherwise they are written to the virtual store in your user profile which can give its own headaches.
Note that deleting the msvcrt80 runtime and related files from the embedded folder may be possible to resolve problems if the runtime is also installed in the system itself.