Einzelnen Beitrag anzeigen

peter_chen

Registriert seit: 25. Nov 2009
3 Beiträge
 
Delphi 2010 Professional
 
#1

IntToStr liefert Exception

  Alt 15. Dez 2010, 18:45
Delphi-Version: 2010
Hallo ihr Lieben,

Ich habe hier folgendes kleines Stückchen Code:

Delphi-Quellcode:
procedure TComThread.COMDebug(S: string);
var
  P: PChar;
  didWork: Boolean;
  aHandle: HWND;
  aTickCnt: Cardinal;
  aTimeStamp: Cardinal;
  S2: string;
begin
  try
    aTickCnt := GetTickCount;
    aTimeStamp := aTickCnt - PultStartTime;
    S := ' ms: ' + S;
    S2:= IntToStr(aTimeStamp);
    S := S2 + S;
// getmem(P, length(S) + 1);
// strPCopy(P, S);
// aHandle := Self.Handle;
// didWork := PostMessage(aHandle, WM_COMTHREAD, IDCOMDebug, LongInt(P));
// didWork := PostMessage(FHandle, WM_COMTHREAD, IDCOMDebug, LongInt(P));
    TraceString('ComDebug:' + S);
// if assigned(SLDebug) then
// SLDebug.Add(inttostr(GetTickCount - PultStartTime) + ' ms: ' + S + ' ' + BoolToStr(didWork,true));
  except
    on ex:Exception do
    begin
      TraceString('ComDebugException:' + S);
      TraceString('ComDebugException:' + ex.Message);
    end;
  end;
end;
Wie ihr seht handelt es sich um eine Debugprozedur für eine COM-Schnittstelle, die bei mir eingebunden ist.Wie ihr seht, habe ich ein anderes Trace eingefügt und an den auskommentierten Zeilen erkennt ihr auch, dass ich schon ein wenig herumprobiert habe...
Das IntToStr liefert mir teilweise, also nicht immer, aber doch immer an den selben Stellen eine "Zugriffsverletzung bei Adresse 00402FEB in Modul 'mitPultComp.exe'. Schreiben von Adresse 0057001C" Woher kommt das? Und wie krieg ich das weg?

Als Umgebung verwende ich Delphi 2010.

Ich hoffe, ihr könnt mir irgendwie helfen?
  Mit Zitat antworten Zitat