[Delphi] Invalid pointer operation

0

Witam!

W mojej aplikacji odwołuję się do funkcji osadzonej w dołączonej statycznie bibliotece dll, zwracającej wartość string. Wywołanie tej funkcji z programu oparte jest na następującym szablonie:
zmienna := funkcja_z_dll(zmienna);

Z powyższym nie ma problemu, ale przy zamykaniu formy, z której te odwołania nastąpiły (jeśli z formy głównej, to podczas zamykania programu), pojawia mi się błąd "Invalid pointer operation." - nie jestem nawet w stanie dokładnie określić, co jest jego przyczyną.

Bardzo proszę o pomoc w rozwiązaniu tego problemu.

Pozdrawiam i życzę wszystkiego najlepszego w Nowym Roku! :)
Naszy

0

Używanie stringów w dll jest ryzykowne. Spróbuj może zmienić je na PChar'y...

0

String nie moze być parametrem eksportowanej procedury lub elementem zwracanymprzez jakąś funkcję. Zamiast tego zalecane jest używania zmiennych typu PChar lub ShortString. Jeżeli jednak uparłeś się i chcesz koniecznie używać zmiennych typu String to musisz dodać do listy uses moduł ShareMemzarówno w bibliotece DLL jak i w aplikacji wykorzystującej bibliotekę i dodatkowo moduł ten musi być na pierwszym miejscu, czyli musi stanowić pierwszą pozycję dyrektywy uses [!!!]

0

Dziękuję Panowie!
Pozamieniałem wszystkie eksportowane stringi na PChar'y i działa bez najmniejszego problemu. :)

ShareMem nie chciałem używać ze względu na przymus dołączenia tej biblioteki do programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1