Guten Tag,
Ich habe hier folgendes Problem:
Ich würde gerne per WM_COPYDATA einen record an eine Applikation senden. leider macht mit CopyMemory Probleme:
Delphi-Quellcode:
function TMyObject<T>.SendRec(Rec:T):Boolean;
var
CopyData:TCopyDataStruct;
SendRecord:^T;
Size:Cardinal;
begin
New(SendRecord);
try
Size:=SizeOf(T);
CopyMemory(SendRecord, @rec, SizeOf(T)); <--fürt zu einem fehler
//ab hier ist eig alles unwichtig
// CopyData.cbData := SizeOf(T);
// CopyData.lpData := SendRecord;
// ...
finally
Dispose(SendRecord);
end;
end;
Die EAccessiViolation tritt aber erst beim Beenden des Programms auf.
Der Record besteht aus:
Delphi-Quellcode:
type
TMyRecord=packed record
Var1:Cardinal;
Var2:Cardinal;
Test:Array[1..30]of Char;
end;
So wird die SendRec-Methode aufgerufen:
Delphi-Quellcode:
var
rec:TTranscieverRecord;
begin
rec.Var1 := StrToIntDef(Edit1.Text, 0);
rec.Var2 := StrToIntDef(Edit2.Text, 0);
FillChar(rec.Test, SizeOf(rec.Test), #0);
StrCopy(@(rec.Passwort[1]), PChar(Edit3.Text));
...
Weiß jemand eine Lösung?
Danke