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

Reply via email to