Har fått en specifikation på ett dll-interface som jag tror är skrivet i Delphi. Ja det ser lite mystiskt ut. <var> är ju ett reseverat ord och betyder helt enkelt variabel. >Du skall skicka en pekare som andra argument.Det första argumentet blir tydligen en Constant Jag är också osäker. Så här kan jag också skriva. Det är en Delphi dll.export & var
Specifikationen ser ut så här:
function ImportedFunction(const inputdata: pchar; var outputdata: pchar): boolean; export; stdcall;
(Jag skall alltså skriva en dll innehållande ovanstående funktion som anropas från ett delphiprogram)
Någon som kan förklara hur "var" fungerar här?
Innebär det att jag får en pekare till en strängbuffert eller att jag skall returnera en pekare till en. Om det är det senare, avallokeras minnet?
Det här är min C++ tolkning:
__declspec(dllexport) bool __stdcall ImportedFunction(const char* inputdata, char*& outputdata);Sv: export & var
Man deklarerar helt enkelt att outputdata skall vara pchar,
dvs en pekare till en nullterminated sträng. C och C++ datastruktur.
Du skall skicka en pekare som andra argument.Det första argumentet blir tydligen en Constant
Dvs du skickar två pekare till två olika strängbuffrar. Funktionen returnerar (Exporterar) BooleanSv:export & var
>Dvs du skickar två pekare till två olika strängbuffrar. Funktionen returnerar (Exporterar) Boolean
Men jag sitter ju i andra ändan. Jag skall skapa en dll som innehåller ovanstående funktion. Anropet sker från ett program som jag inte har tillgång till.
Jag trodde var betydde att det är en referensparameter men har sagt ingen aning om strängar fungerar i delphi.Sv: export & var
PChar i Delphi är samma sak som nullterminated sträng i C konvension.
Sitter och funderar på om man kanske skickar pekare till hela Functionen.
Jag spånar inte mer hoppas någon expert loggar in.
Skall du skriva om hela DLL:en i C eller skall du använda den befintliga Delphi. ?
<b>men har sagt ingen aning om strängar fungerar i delphi.</b>
Om du använder PChar funkar det exakt som i C
type PChar = ^Char Nullterminated stringSv:export & var
Om jag skulle ha använt den Delphi dll:en från VB
skulle jag skicka 2 String-argument ByReference.
En Constant från mitt VB och en StringSv: export & var
Den vill ha en pchar som input och returnerar en outputdata som en pchar. Deklarera outputdata som en pchar och anropa funktionen!