![]() |
Re: Hilfe bei C++ Code nach Delphi Code
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Das läßt sich sicher auch irgendwie einsetzen um die aktuelle Unit+Zeile zu bekommen wenn man dem GetMapAddressFromAddress die richtige Adresse gibt :gruebel: Zitat:
|
Re: Hilfe bei C++ Code nach Delphi Code
Zitat:
|
Re: Hilfe bei C++ Code nach Delphi Code
Zitat:
An allen anderen Danke ich auch! Werde mir mal jetzt die einzelnen Vorschläge anschauen und durcharbeiten. P.S.: Habe mir gerade die Hilfe von JCL angeschaut und unter dem Punkt "Debugging->Source Locations" Gibt es functions __FILE__ und __LINE__ ! Da müsste doch was gehen oder? |
Re: Hilfe bei C++ Code nach Delphi Code
Ach ja,
Assertions kennen auch File und Zeilennummer des Problems, Beispiele für die Verwendung: OH AssertErrorProc und AssertErrorProc (Beispiel) inclusive der Möglichkeit die auf eigene Ausgaberoutinen umzusetzen, siehe obiges Beispiel und
Code:
Ergo: mit den entsprechenden Debuginformationen compiliert kennt die Anwendung Filename und Zeilennummer und man kommt auch recht einfach heran.
procedure AssertErrorHandler(const Message, Filename: string; LineNumber: Integer; ErrorAddr: Pointer);
var S: String; begin S := Format('%s (%s, line %d, address $%x)', [Message, Filename, LineNumber, Pred(Integer(ErrorAddr))]); writeln(myFile,s); end; Grüsse Woki |
Re: Hilfe bei C++ Code nach Delphi Code
So jetzt habe ich es so, wie ich mir das in etwa vorgestellt habe. Danke nochmal an alle! Echst super Hilfe hier! Das einzige was mir bei Delphi noch nicht klar ist, ist die Sache mit der Debug und Release Version, die es unter VC gibt. Delphi erstellt nur eine Exe Datei und die ist abhängig von den gewählten Compileroptionen z.B.: {$D+} und etc. Ist das richtig? Bedeutet dann, in Delphi {$D+} = _DEBUG wie unter VC?
Danke nochmals.
Delphi-Quellcode:
{$IFDEF _DEBUG}
function CHECK_HR(p: HRESULT): HRESULT; var acError: array[0..255] of Char; begin if FAILED(p) then begin ZeroMemory(@acError, sizeof(Char) * 256); strlfmt(acError, sizeof(Char) * 256, 'DEBUG: HRESULT FAILED %d in file %s in line %d ', [p, __FILE__, __LINE__]); MessageBox(0, acError, 'HRESULT FAILED', MB_OK or MB_ICONERROR); end; Result := p; end; {$ELSE} function CHECK_HR(p: HRESULT): HRESULT; begin Result := p; end; {$ENDIF} |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz