Einzelnen Beitrag anzeigen

WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#1

[gelöst] Probleme mit CopyMemory

  Alt 17. Mär 2011, 14:19
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

Geändert von WM_CLOSE (18. Mär 2011 um 06:42 Uhr)
  Mit Zitat antworten Zitat