Einzelnen Beitrag anzeigen

Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit FastCode und CopyMemory

  Alt 10. Mär 2013, 21:19
Hallo,

Ich benutze folgende Funktion um Text in die Zwischenablage zu kopieren:

Delphi-Quellcode:
function SetClipText(szText: string): Boolean;
var
  pData: DWORD;
  dwSize: DWORD;
begin;
  Result := FALSE;
  OpenClipBoard(0);
  try
    EmptyClipboard;
    dwSize := Length(szText) + 1;
    if dwSize <> 0 then begin;
      pData := GlobalAlloc(MEM_COMMIT, dwSize);
      try
        CopyMemory(POINTER(pData), PChar(szText), dwSize);
        if SetClipBoardData(CF_TEXT, pData) <> 0 then
          Result := TRUE;
      except
        GlobalFree(pData);
        raise;
      end;
    end;
  finally
    CloseClipBoard;
  end;
end;
Das funktioniert auch immer Problemlos.
Aufeinmal allerdings nicht mehr, und die Fehlersuche ging los.

Durch das debuggen habe ich dann bemerkt, dass die eingebundene Unit FastCode dafür verantwortlich ist, dass dort irgendein Problem bei CopyMemory vorliegt.
Nur weil diese Funktion jetzt nicht geht, wollte ich allerdings nicht auf die FastCode Unit verzichten.

Gibt es also Jemanden der sich mit Assembler besser auskennt als ich, und den Fehler finden kann?
Beim Aufruf von CopyMemory springt er in die Unit FastMove in die Funktion "Forwards_SSE3_10;". Komischerweise rufe ich an anderen Stellen auch CopyMemory auf, und habe dort allerdings nicht die Probleme.

Kann es vllt. auch sein, das ich ein Fehler bei der Parameterübergabe von CopyMemory habe?

mfg Martin


Edit:
Achso, das Problem äußert sich übrigens darin, dass unter Verwendung von FastCode nichts mehr in die Zwischenablage kopiert wird.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)

Geändert von lbccaleb (10. Mär 2013 um 22:15 Uhr)
  Mit Zitat antworten Zitat