On Mon, 13 Jan 2014, Fred van Stappen wrote:
On Mon, 13 Jan 2014, Fred van Stappen wrote:
> > > begin
> > > LibHandle:=DynLibs.LoadLibrary(libfilename);
> > > if LibHandle <> DynLibs.NilHandle then
> > >
> > > Pointer(soundtouch_createInstance) :=
DynLibs.GetProcedureAddress(LibHandle, PAnsiChar('soundtouch_createInstan
ce
> '));
> >
> > Remove the typecast PansiChar()
> >
> > Michael.
> > >> Hello Michael and thanks for answer.
> > But if i remove PansiChar(), i still get :
> > An unhandled exception occurred at $0000000000000000:
> > EAccessViolation: Access violation
> > $0000000000000000
>
> What is the value of Pointer(soundtouch_createInstance) after the above statement ? Is it nil ?
>
> Michael.
> Thanks for answer Michael.
>
> Hum, how can i get the value of pointer if the application crash when i do :
>
> >> FHandle := soundtouch_createInstance();
Do a
Writeln((@soundtouch_createInstance)=Nil);
Michael.
___________
Thanks Michael.
Result in Linux for :
if ST_Load('/home/fred/libSoundTouch/libSoundTouch.so')
then writeln('ok') else writeln('no') ;
>> ok
Writeln((@soundtouch_createInstance)=Nil);
>> FALSE
I agree it is very strange, in windows, with unit Windows, it works perfectly..
Wait.
What happens if you use dynlibs on windows ?
Because there can be 1000 other reasons why the load failed on linux,
not necessarily connected to dynlibs.
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal