[Lazarus] LoadLibrary on WinCE

Pavel Řezníček cigydd at gmail.com
Thu Sep 18 23:47:10 CEST 2008

Joost van der Sluis napsal(a):
> Op dinsdag 16-09-2008 om 21:16 uur [tijdzone +0200], schreef Pavel
> Řezníček:
>> On Lazarus v0.9.25 r16541 i386-win32-win32/win64, the LoadLibrary 
>> function fails on WinCE.
> Did you use fpc 2.2.2?
No, fpc 2.2.3 only.
Now I have reverted to v0.9.25 r15862 i386-win32-win32/win64 with fpc 
2.2.3 but it works fine.
>> I tried to load libpq.dll and sqlite3.dll with no success.
> sqlite3.dll works here as a charm. TSQLite3connection also works.
For me, neither.
>> I have the ARM/WinCE libraries in the same directory as my executable 
>> (even in the \gdb folder). All accompanying libraries, *.dll and *.lib, 
>> for libpq.dll I have also there.
>> I tried to load the libraries myself using a full absolute path (e. g., 
>> ExtractFilePath(ParamStr(0)) + 'libpq.dll').
>> You can test it on the PQConnection component (try the .Connect 
>> property). Of course you should have the libpq.dll file for WinCE.
> Did you try any other software that uses this library on WinCE?
Yes, an example program shipped with the libpq library works well.
>> An alternative way is just to load some library you find on your WinCE 
>> system, let's say (untested code):
>> procedure Form1.Button1Click(Sender: TObject);
>> var LibHandle: HInst;
>> begin
>>     LibHandle := Windows.LoadLibrary('mylibrary.dll')
>>     ShowMessage(IntToStr(LibHandle));
>>     LibHandle := Windows.LoadLibrary(ExtractFilePath(ParamStr(0)) + 
>> 'mylibrary.dll')
>>     ShowMessage(IntToStr(LibHandle));
>> end;
>> That's it. If you have the same bug you'll get both handles of zero 
>> value (meaning the loading wasn't successful).
>> I wonder why just a simple thing as calling an API function would fail. 
>> Maybe because the core library from that the LoadLibrary function is 
>> imported also fails to load??
>> Any clue how to get it working?
> I woudn't be suprised if all files must be in the application's
> directory. 
> Joost.
Yes, WinCE is pretty strange, i. e. it does not support the "current 
directory" natively - as I read somewhere.
It's also strange that you had success loading the libraries, as well as 
me when I came back to an older snapshot. What's the difference between 
these two ones? If you figured out what exactly should I compare maybe I 
could send you a diff.


More information about the Lazarus mailing list