30. marts 2001 - 02:12Der er
2 kommentarer og 2 løsninger
DELPHI DLL interface til C++
Hej
Jeg vil gerne oprette en række strenge i mit C++ program og derefter kalde min DELPHI DLL med en pointer til disse streng for derefter, at manipulere strengene direkte ud fra pointerne i DLL\'en. Derefter returnere til C++ med de nu ændrede strenge.
Jeg har lavet en DELPHI DLL der indeholder følgende function: function GetData(Source, Dest : PChar; MaxLength : Integer) : Integer; begin Dest := \'bla. bla.\'+#0; Result := 10; end;
Problemet er bare, at den ændrede \"Dest\" ikke bliver skrevet tilbage til min C++ kode.
Delphi giver også en advarsel om, at \"Value assigned to \'Dest\' never used.
Du kan ikke overføre pointere mellem to \"programmer\" med mindre de ligger i samme adresseområde, altså som om det var ét program. Det kan skyldes den måde du benytter din DLL-fil på. Jeg har ikke lige 100% styr på hvordan man gør, men det er da en \"ledetråd\"...
function GetData(cData : PChar; nLength : Integer) : Integer; cdecl; const Data = \'bla. bla.\' var i: Integer; Begin i := 0; while (i < nLength) and (cData[i] <> #0) and (i < Length(Data)) do begin cData[i] := Data[i+1]; Inc(i); end; cData[i] := #0; Result := Length(Data); end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.