JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6727f01b444203bf5238cadcc6c4ba97Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Profiler
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> News
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 22:24    Titel: Antworten mit Zitat

TheMillenium hat Folgendes geschrieben:
Ich bezweifle aber, dass man den Variablennamen in ein String umwandeln kann, oder geht das?

Das ginge vielleicht, wenn man eine Variable sozusagen "registriert".
Dann übergibt man eine Referenz der Variable+dazugehörigen String.

In einem "Pool" z.B. einer STL-Map wird dann der Pointer einem string zugeorndet bzw. eher anders herum.
Beim Protokoll übergibt man dann den Pointer und erhält einen string Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 22:24    Titel: Antworten mit Zitat

TheMillenium hat Folgendes geschrieben:
Cool wäre sowas:

Profile(Funktion(param1,param2);


das dürfte sehr schwer werden. Wenn du mit Funktionspointern arbeitest musst du für jeden verschiedenen Parameter und jeden verschiedenen Rückgabewert die Funktion Profile überladen. Und an den Namen der Funktion kommst du auch nicht ran.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 22:25    Titel: Antworten mit Zitat

in neueren VC++ Versionen gibt es __FUNCTION__ funktioniert aber erst ab Version 7.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.08.2004, 22:34    Titel: Antworten mit Zitat

TheMillenium hat Folgendes geschrieben:
Cool wäre sowas:

Profile(Funktion(param1,param2);

Dass sich die Funktion den Funktionspointer schnappt aufruft und profiled, irgendwie auch den Namen der Funktion ermitteln kann und in die Statistik einträgt...Ich bezweifle aber, dass man den Variablennamen in ein String umwandeln kann, oder geht das?


Dafür könnte man doch prima ein Macro verwenden:

Code:

#define PROFILE(name,retvalue) ProfileSample(#name); retvalue=name;
#define PROFILE(name) ProfileSample(#name); name;

...
int Foo(float in)
{
  return in;
}

void Foo2(char *in)
{
 ...
}

void Bar()
{
  int a;

  PROFILE(Foo(100.0), a);

  PROFILE(Foo(200.0), int b);

  PROFILE(Foo2("Hallo"));

  PROFILE(int c=Foo(100.0));

  PROFILE(int *feld=new int[1000]);   

  PROFILE(

      int *d;
      if(100==100)
         d=new int[1000];
      else
         d=new int[2000];
      for(int i=0; i<100; i++)
         d[i]=i;
      delete [] d;
         
   );
}

_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 23:21    Titel: Antworten mit Zitat

Und das übergibt meiner Profilefunktion auch den Namen der Funktion?

z.B.

Profile(MyFunc(param));

und dann kann so eine Ausgabe erfolgen:
MyFunc: 17ms
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.08.2004, 23:43    Titel: Antworten mit Zitat

naja fast die Ausgabe würde dann so ungefähr aussehen:

MyFunc(param): 17ms

aberwenn du das macro erweiterst das alles ab dem ersten ( Zeichen gelöscht wird sollte es auch klappen.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.08.2004, 07:39    Titel: Antworten mit Zitat

Cool. Funktioniert. Danke! Smile

Gibt es eine Seite wo du das her hast?
mehr als #define und #ifndef kenne ich nicht....
Und Makros scheinen ja ziemlich nützlich zu sein. Very Happy
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 04.08.2004, 12:34    Titel: Antworten mit Zitat

Das ist in der MSDN drin. Ich habs mal gebraucht und so herausgefunden.

Einfach nach # suchen.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> News Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum