Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FBEmbed.dll does not load icuin30.dll from same folder as itself (icudt30.dll, icuuc30.dll load OK) [CORE3183] #3557

Closed
firebird-automations opened this issue Oct 14, 2010 · 12 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Wade Auchterlonie (wadeauch)

Votes: 1

Example

Application folder = D:\Projects\PMKM7\Bin
FBEmbed folder = D:\Projects\PMKM7\FBE, D:\Projects\PMKM7\FBE\intl

Here's a log (edited) from Process Monitor as FBEmbed.dll is loaded:

QueryOpen D:\Projects\PMKM7\FBE\icuuc30.dll SUCCESS
QueryOpen D:\Projects\PMKM7\FBE\icudt30.dll SUCCESS
QueryOpen D:\Projects\PMKM7\Bin\icuin30.dll NAME NOT FOUND
QueryOpen C:\WINDOWS\system32\icuin30.dll NAME NOT FOUND
QueryOpen C:\WINDOWS\system\icuin30.dll NAME NOT FOUND
QueryOpen C:\WINDOWS\icuin30.dll NAME NOT FOUND
etc until incorrect version if icuin30.ddl is located in a folder on the path

Observations:
(1) icuuc30.dll was located in the same folder as FBEmbed.dll
(2) icudt30.dll was located in the same folder as FBEmbed.dll
(3) When loading icuin30.dll, FBEmbed.dll is not looking in is's own folder first
(4) Eventually (not shown in log above) icuin30.dll is located beneath a Delphi folder on the path and as a result of being the wrong version collation errors are generated.

The way it is now, the file icuin30.dll must be placed in the application folder to be successfully located, and with this comes future problems when trying to use morethan one version of the engine.

Commits: 91dcb1f FirebirdSQL/fbt-repository@b257000

@firebird-automations
Copy link
Collaborator Author

Commented by: @asfernandes

How did you load fbembed.dll?

@firebird-automations
Copy link
Collaborator Author

Commented by: Wade Auchterlonie (wadeauch)

h := LoadLibraryEx('D:\Projects\PMKM7\FBE\FBEmbed.dll', 0, LOAD_WITH_ALTERED_SEARCH_PATH);

As the log shows, icuuc30 and icudt30 were loaded from the same folder as fbembed.dll.

Then for icuin30, he search began:
(1) Application folder
(2) System32 folder
(3) Windows folder
(4) Path folders

but *not* the same older as fbembed.dll as the first search location.

@firebird-automations
Copy link
Collaborator Author

Commented by: Robert Kindl (rkindl)

This problem is showstopper when trying to use FBEmbed from .NET project, where I wish dynamically use 32bit version on 32bit OS version and 64bit version on 64bit OS version (.NET files are idependent).
Eg. I want to simply install following files:
C:\Program Files\MyApplicaiton\MyApp.exe (.NET independent application)
C:\Program Files\MyApplicaiton\x64\fbembed.dll icuuc30.dll icuin30.dll ... and all other 64 bit stuff
C:\Program Files\MyApplicaiton\x86\fbembed.dll icuuc30.dll icuin30.dll ... and all other 32 bit stuff

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

assignee: Vlad Khorsun [ hvlad ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Robert Kindl (rkindl)

I suppose that this will never be fixed in 2.5
Any chance it will be fixed in 3.0?

Or any advise how to solve my problem how to correctly load fmembed.dll from x86 or x64 folders ?

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Does you ever tried fb3 ? It should be fixed at CORE4275
v2.5.3 also will have a fix, but a bit different

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Fix is committed, please confirm

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

No feedback - i assume it is fixed

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.5.3 [ 10461 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

QA Status: No test

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Closed [ 6 ] => Closed [ 6 ]

QA Status: No test => Cannot be tested

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants