> > I run nm and find the name of the procedures ( PS : without nm-Ewald's tip, 
> > you must be a high soothsayer to find it)
> > For example, a C called procedure : soundtouch_getVersionString() becomes : 
> > _ZN10soundtouch10SoundTouch16getVersionStringEv() !!!
> > 
> 
> The _ZN10soundtouch10SoundTouch16getVersionStringEv name mangling
> suggests that this is a C++ lib, not a C lib. Generally speaking, you
> can't call C++ libs from fpc.
> 
> Ludo

Yep, Ludo, many thanks to take care but...

I have a test program who use some procedures to test , for example :

 FVersionID := soundtouch_getVersionId();
 FVersionString := StrPas(soundtouch_getVersionString());  
 
  writeln(FVersionID);
  writeln(FVersionString);

>>> Result : 

> 10800
> 1.8.0

So, it seems to work...

Those procedures are declared as this :

Pointer(soundtouch_getVersionId)    := GetProcAddress(LibHandle, 
Pchar('_ZN10soundtouch10SoundTouch12getVersionIdEv')); 
 
Pointer(soundtouch_getVersionString):= 
GetProcAddress(LibHandle,Pchar('_ZN10soundtouch10SoundTouch16getVersionStringEv'));
 

I only have problem with :
_ZN10soundtouch10SoundTouch16getVersionStringEv()...

                                          
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to