Code: Alles auswählen
function CopyPicDll(Buffer: Pointer; BufferSize: int64;
StringBuffer: PWideChar; StringBufferSize: int64): ByteBool; stdcall;
begin
if (@FCopyPicDll <> nil) and (BufferSize > 0) then
Result := FCopyPicDll(Buffer, BufferSize, StringBuffer, StringBufferSize);
end;
Wie kann ich diesen Delphi-String (Ist UTF16/WideString kodiert) wieder zurückverwandeln ?
Wenn ich folgendes verwende (StrRes: PWideChar) dann kommt zwar ein Ergebnis heraus, aber Abfragen wie length() ergeben Schrott. Da dürfte die Länegangabe Schrott geworden sein.
Code: Alles auswählen
CopyPicDll(PBuffer,FMyMemoryStream.Size,StrRes,100);
Result := UTF16ToUTF8(PWideChar(StrRes),100);
Was habe ich da (alles) übersehen ?
Andreas