Avatar billede riversen Nybegynder
19. april 2003 - 08:54 Der er 26 kommentarer og
1 løsning

Testudskrifter i Win32 Application

Hvad kan jeg bruge for at lave nogle hurtige testudskrifter i en Win32 Application. Tænker på noget ala System.out.println( "TEST" ); ligesom i Java fx.

og hvad med konvertering af et tal til en tekststreng?
Avatar billede arne_v Ekspert
19. april 2003 - 09:15 #1
#include <stdio.h>

int i = 123;
char *s = "abc";
printf("%d %s\n",i,s,);
Avatar billede arne_v Ekspert
19. april 2003 - 09:16 #2
Ovenstående virker i både C og C++.

En ren C++ løsning siger:

#include <iostream>

using namespace std;

int i = 123;
char *s = "abc";
cout << i << " " << s << endl;
Avatar billede arne_v Ekspert
19. april 2003 - 09:18 #3
Konvertering fra tal til streng kunne være:

#include <stdio.h>

int i = 123;
char buf[11];
sprintf(buf,"%d",i);
Avatar billede arne_v Ekspert
19. april 2003 - 09:19 #4
Eller (på nogle platforme):

#include <stdlib.h>

int i = 123;
char buf[11];
char *s = itoa(i,buf,10);
Avatar billede riversen Nybegynder
19. april 2003 - 09:20 #5
cout virker da ikke i en win32 application...det er ikke console
Avatar billede arne_v Ekspert
19. april 2003 - 09:24 #6
Åh.

Sorry.

Så skal du over og have fat i MessageBox.
Avatar billede arne_v Ekspert
19. april 2003 - 09:25 #7
MessageBox(NULL, "streng du vil vise", "titel på vindue", 0);
Avatar billede arne_v Ekspert
19. april 2003 - 09:25 #8
Og så kan du bruge sprintf til at formatere strengen med.
Avatar billede riversen Nybegynder
19. april 2003 - 09:25 #9
ok, det er altså den eneste måde...

er det så kun itoa jeg kan bruge til konverteringen ?
Avatar billede arne_v Ekspert
19. april 2003 - 09:42 #10
Nej du kan også bruge sprintf.

#include <stdio.h>
#include <windows.h>

int i = 123;
char *s = "abc";
char buf[80];
sprintf(buf,"i=%d s=%s",i,s);
MessageBox(NULL, buf, "Debug", 0);
Avatar billede arne_v Ekspert
19. april 2003 - 09:44 #11
Hvis du skal have meget ud, så bliver du træt at alle de f......
message boxe.

Så åbner du en fil og skriver alt debug til den.

#include <stdio.h>

FILE *fp = fopen("debug.dat", "w");
int i = 123;
char *s = "abc";
fprintf(fp,"i=%d s=%s",i,s);
// masser af fprintf
fclose(fp):
Avatar billede riversen Nybegynder
19. april 2003 - 10:00 #12
ok...tak for det...
Avatar billede jpk Nybegynder
19. april 2003 - 16:09 #13
Hvis du bruger MFC kan du gøre således:

int a=1, b=2;
TRACE("a=%d, b=%d", a, b);

Og teksten vises i debuggeren...
Avatar billede riversen Nybegynder
19. april 2003 - 16:10 #14
jeg ved ikke hvad mfc er
Avatar billede arne_v Ekspert
19. april 2003 - 16:12 #15
MFC = Microsoft Foundation Classes = library der kommer med Microsoft Visual C++
Avatar billede riversen Nybegynder
19. april 2003 - 16:14 #16
hvordan bruger jeg så det?
Avatar billede riversen Nybegynder
19. april 2003 - 16:19 #17
'TRACE' : undeclared identifier
Avatar billede arne_v Ekspert
19. april 2003 - 21:53 #18
Formentlig skal du bare inkludere en .H fil.

Gæt: trace.h !
Avatar billede riversen Nybegynder
22. april 2003 - 08:50 #19
c:\program files\microsoft visual studio\vc98\include\trace.h(75) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\trace.h(76) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\trace.h(77) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\trace.h(78) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\trace.h(79) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\trace.h(83) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\trace.h(345) : warning C4229: anachronism used : modifiers on data are ignored
Avatar billede riversen Nybegynder
22. april 2003 - 08:56 #20
og får stadig undeclared identifier
Avatar billede jpk Nybegynder
22. april 2003 - 10:06 #21
Du kan kun bruge TRACE hvis du arbejder i en MFC app (debug)
I et Win32/Console-program kan du bruge OutputDebugString, men den kan dog ikke formatere parametre, så det skal du selv lave hvis du har brug for det...

Ex:
OutputDebugString("Test\n");
Avatar billede riversen Nybegynder
22. april 2003 - 10:12 #22
der sker stadig intet...der kommer ingenting ud i debug vinduet
Avatar billede jpk Nybegynder
22. april 2003 - 10:16 #23
Det virker naturligvis kun når du debugger, gør du det?
Avatar billede riversen Nybegynder
22. april 2003 - 15:06 #24
jpk: betragt mig som idiot...

du kan evt. skrive over icq, hvis du har det
Avatar billede jpk Nybegynder
24. april 2003 - 09:31 #25
Hvilket udviklingsmiljø bruger du+
Avatar billede riversen Nybegynder
24. april 2003 - 10:31 #26
vc++
Avatar billede jpk Nybegynder
24. april 2003 - 10:50 #27
Okay, i VC++ 6.0 (eller er det .NET du bruger?) kører du et program i debug mode ved at trykke F5.

Du kan fx stoppe programudførslen et sted i koden ved at sætte et breakpoint.
Det kan du gøre ved at sætte cursoren på den linie du vil stoppe ved og trykke F9. Det indikeres ved en rød prik til venstre for linien.
Når du så debugger, stopper programmet ved den linie, så kan du se hvad værdien af dine variable er (fx ved at holde musemarkøren over en variabel).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester