Jak mogę zwrócić PChar z funkcji DLL do aplikacji VB6 bez ryzyka awarii lub wycieków pamięci?
Muszę utworzyć bibliotekę DLL, która jest używana przez aplikację VB6. Ta biblioteka DLL musi udostępniać kilka funkcji, niektóre z nich muszą zwracać ciągi znaków.
To jest deklaracja VB6:
Declare Function MyProc Lib "mylib.dll" (ByVal Param As String) As String
I to jest skrót implementacji Delphimylib.dll
:
function MyProc(AParam: PChar): PChar; stdcall;
var
ReturnValue: string;
begin
ReturnValue := GetReturnValue(AParam);
Result := ???;
end;
Co muszę tu wrócić? Kto zwolni pamięć powracającego ciągu PChar?
EDYTOWAĆ: Pytam o Delphi 2005 (PChar
= PAnsiChar
)