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
Comments
Commented by: @asfernandes How did you load fbembed.dll? |
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: but *not* the same older as fbembed.dll as the first search location. |
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). |
Modified by: @hvladassignee: Vlad Khorsun [ hvlad ] |
Commented by: Robert Kindl (rkindl) I suppose that this will never be fixed in 2.5 Or any advise how to solve my problem how to correctly load fmembed.dll from x86 or x64 folders ? |
Commented by: @hvlad Fix is committed, please confirm |
Commented by: @hvlad No feedback - i assume it is fixed |
Modified by: @hvladstatus: Open [ 1 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] Fix Version: 2.5.3 [ 10461 ] |
Modified by: @pcisarstatus: Resolved [ 5 ] => Closed [ 6 ] |
Modified by: @pavel-zotovQA Status: No test |
Modified by: @pavel-zotovstatus: Closed [ 6 ] => Closed [ 6 ] QA Status: No test => Cannot be tested |
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
The text was updated successfully, but these errors were encountered: