> > 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