Hallo,
ich habe folgende Definition einer Funktion in einer
DLL:
Code:
BOOL __declspec(dllexport) GetUser (LPSTR sDomain, LPSTR sUser, DWORD nLen);
in Delphi sieht das bei mir so aus:
Delphi-Quellcode:
function GetUser(sDomain: LPSTR; var sUser: LPSTR; var nLen: DWORD):BOOL; stdcall; overload;
...
exports
GetUser(sDomain: LPSTR; var sUser: LPSTR; var nLen: DWORD) name 'GetUser';
Mein Problem ist die Übergabe eines Strings als LPSTR.
Delphi-Quellcode:
function myMagicFunc(const sDomain: string; var SUser: string):Boolean;
...
function GetUser(sDomain: LPSTR; var sUser: LPSTR; var nLen: DWORD):BOOL;
var
sD,
sU: string;
cU: array of Char;
begin
sD := sDomain;
sU := sUser;
Result := myMagicFunc(sD, sU);
// string sU in array of char cU umwandeln
setlength(cU, length(sU));
StrLCopy(@cU[0],@sU[1],length(cU));
sUser := PansiChar(cU);
nLen := Length(cU);
// Compiler-Hinweis Beseitigung ;-)
if sUser = sDomain then ;
end;
Das will nicht so wie ich will !!!
Gibt beim Aufruf eine Schutzverletzung.
Weiß jemand Rat ?
[edit]Als offene Frage markiert[/edit]