AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei C++ Code nach Delphi Code

Ein Thema von pajofego · begonnen am 6. Okt 2004 · letzter Beitrag vom 7. Okt 2004
Antwort Antwort
Seite 1 von 2  1 2      
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#1

Hilfe bei C++ Code nach Delphi Code

  Alt 6. Okt 2004, 22:57
Hallo Leute,

nachdem ich seit mehr als einem Jahr C++ geschädigt bin brauche ich eure Hilfe um folgenden Macro aus c++ in Delphi umzuwandeln:

Code:
#ifdef _DEBUG
   #define CHECK_HR(p) {if( FAILED(hr=(p))) {char strError[300];sprintf(strError,"DEBUG: HRESULT FAILED (%i) in file %s in line %d.",int(hr),__FILE__, __LINE__);MessageBox(NULL,strError,"HRESULT FAILED",MB_OK);return hr;}}
#else
   #define CHECK_HR(p)   {if( FAILED(hr=(p))) return hr;}
#endif
Wäre cool wenn mir einer bei der Übersetzung helfen könnte bin z.Zt. komplett raus aus pascal und finde net die richtigen Befehle etc.

Noch eine Frage zur IDE!
Ich habe Delphi 6 und mich nervt es, dass wenn ich die Units wechsle der Codeexplorer den Baum wieder komplett zumacht und ich immer wieder meine Klasse öffnen muss, damit ich darin navigieren kann. Kann man das abstellen?

Danke,

pajofego
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 6. Okt 2004, 23:04
*kreisch* Ist das Code oder Wirrwarr? Ich weiss schon warum ich C nicht wirklich mag...

(Sorry, konnt's mir net verkneifen.)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Kernel32.DLL
(Gast)

n/a Beiträge
 
#3

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 6. Okt 2004, 23:07
Geht mir ähnlich...

Sry, aber wie wäre es denn ma mir einer ordentlichen Formatierung??
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#4

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 6. Okt 2004, 23:10
Zitat von dizzy:
*kreisch* Ist das Code oder Wirrwarr? Ich weiss schon warum ich C nicht wirklich mag...

(Sorry, konnt's mir net verkneifen.)
Sorry, ist ein bischen verwirrend, ist halt c(zääääh)++

Kurz gesagt soll es folgendes machen:

Im Debugmodus soll er mit in das Debugfenster eine Fehlermeldung reinschreiben, gleichzeitig hätte ich gerne die Zeilennummer und den Dateiname der Unit! Anschliessend folgt eine Meldung durch ein Dialogfeld. Übergabeparameter ist ein pointer! (Ist alles für DirectX-Anwendungen!)

Vielleicht wird meine Absicht jetzt etwas klarer.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#5

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 7. Okt 2004, 08:24
Das mit der Zeilennummer und dem Dateinamen geht in Delphi nicht.
Wollte ich auch schonmal machen, und hier hat man mir gesagt dass das nicht geht.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 7. Okt 2004, 10:14
hmmm...

KA wie dieser salat nach delphi zu konvertiren ist aber _FILE_ und _LINE_ gibt es in delphi nicht, (nur mit extremen umwegen über die JCL und Map-files). Das einfachste wäre vielleicht eine Assertion, denn die zeigt die zeilen nummer und datei an:

assert(hr=0,'Result böse!'); ist aber möglicher weise nicht das, was du willst.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#7

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 7. Okt 2004, 10:36
Gut, also die Compiler Macros __FILE__ und __LINE__ gibt es wohl noch nicht in Delphi. Würde aber trotzdem ganz gerne etwas mehr über die JCL und Map-Files erfahren. Wo kann ich dazu etwas finden.

Was ich noch unbedingt wissen müsste wären die Präprozessoranweisungen
Code:
#ifdef _DEBUG
...
#else
...
#endif
wie sieht denn sowas in Delphi aus?

Danke

P.S.: Hat niemand das gleiche Problem wie ich mit dem Code-Explorer?
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#8

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 7. Okt 2004, 10:49
Naja, da es __FILE__ und __LINE__ nicht in Delphi gibt, gestaltet sich die Übersetzung äußerst unspektakulär:

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 %i', [p]);
    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}
Da es in Delphi keine Makros gibt, muss die Funktion aber anders aufgerufen werden. In C++ würde man einfach schreiben:
Code:
CHECK_HR(...);
In Delphi stattdessen:
if FAILED(CHECK_HR(...)) then Exit; Der Code ist übrigens nicht getestet, müsste aber funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von MagiSun1
MagiSun1

Registriert seit: 4. Okt 2004
Ort: Siegen
19 Beiträge
 
#9

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 7. Okt 2004, 10:50
begin
if
then
else
end;
°*°^_^°Vielleicht ist ja alles viel leichter°^_^*°°
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Hilfe bei C++ Code nach Delphi Code

  Alt 7. Okt 2004, 10:51
Hi,

nun, es geht schon einiges und auch ganz einfach, am einfachsten solange das Programm im Kontext der IDE (lokal oder remote debugging) läuft.

Schau dir mal die Compilerdirektive IFDEF, assertions, das Ereignisprotokoll, outputdebugstring, nicht anhaltende Breakpoints, und die anderen Möglichkeiten der Breakpoints an.

Damit kannst du sehr komfortabel Protokollieren und auswerten was passiert, und die schreiben auch Sourcefilenamen und Zeile in das Protokoll, und das kann man dann auch speichern.

Grüsse
Woki
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz