[fpc-pascal] windows.GetProcAddress() vs DynLibs.GetProcAddress()

Michael Van Canneyt michael at freepascal.org
Mon Jan 13 13:07:47 CET 2014



On Mon, 13 Jan 2014, Fred van Stappen wrote:

> Date: Mon, 13 Jan 2014 12:32:53 +0100
> From: michael at freepascal.org
> To: fpc-pascal at lists.freepascal.org
> Subject: Re: [fpc-pascal] windows.GetProcAddress() vs DynLibs.GetProcAddress()
>
>
> 
> On Mon, 13 Jan 2014, Fred van Stappen wrote:
> 
> > 
> > >>> Here part of NOT working code (if i call soundtouch_createInstance, it crash)
> > ...
> > uses  
> > dynlibs ;
> > ...
> > 
> > var
> > soundtouch_createInstance : function() : THandle; stdcall; 
> > 
> > ...
> > 
> > procedure InitLib(LibFile : PAnsiChar);
> > begin
> > LibHandle:=DynLibs.LoadLibrary(libfilename);
> >   if LibHandle <> DynLibs.NilHandle then
> >    
> >     Pointer(soundtouch_createInstance)        := DynLibs.GetProcedureAddress(LibHandle, PAnsiChar('soundtouch_createInstance'));
> 
> 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.


More information about the fpc-pascal mailing list