Avatar billede jih Nybegynder
20. august 2003 - 20:11 Der er 20 kommentarer og
1 løsning

hvad betyder denne fejl

hmm.. jeg har lige fået fat i "Microsoft Visual C++ 6.0" og en dejlig bog om det... hvor der står at jeg skal skrive denne kode ind og så skal der komme et output direkte på skærmen, som viser: "Hello World!":

---------------------------

#include <iostream.h>

int main()
{
  cout << "Hello World!\n";
      return 0;
}

---------------------------

men der kommer bare en fejl... hver gang... (gemmer filen som hello.exe).. denne fejl kommer:

---------------------------

16-bit MS-DOS-undersystem
  C:\DOCUME~1\CARSTE~1\SKRIVE~1\hello.exe
  NTVDM CPU'en har fundet en ugyldig instruktion.
  CS:0700 IP:0103 OP:63 6c 75 64 65 Vælg "Luk" for at afslutte programmet.

---------------------------

Hvad kan det betyde??? Det skal nok lige siges at jeg bruger ik notepad, som visse andre.. jeg bruger selve C++ programmet til det.. og gemmer det derfra som en hello.exe fil.. det er da det jeg skal gøre?

//WebPsycho
Avatar billede arne_v Ekspert
20. august 2003 - 20:13 #1
Du skal gemme den som hello.cpp og compile den til hello.exe,
så vil det køre !
Avatar billede jih Nybegynder
20. august 2003 - 20:17 #2
hmm... nogen chance for at du kan forklare mig hvordan jeg lige gør det?
Avatar billede jih Nybegynder
20. august 2003 - 20:28 #3
Der står forresten også det her... men jeg kan ik helt forstå det? nogen?

The steps to create an executable file are

1. Create a source code file, with a .CPP extension.

2. Compile the source code into a file with the .OBJ extension.

3. Link your OBJ file with any needed libraries to produce an executable program.
Avatar billede bertelbrander Novice
20. august 2003 - 20:28 #4
Du kompiler med cl hello.cpp
Avatar billede arne_v Ekspert
20. august 2003 - 20:43 #5
Ja - med kommando-linie.

Men med med Visual Studio så burde det ikke være nødvendigt.

Prøv og start Visual Studio og tast programmet ind der og vælg build.
Avatar billede jih Nybegynder
20. august 2003 - 20:44 #6
problemet er bare det, at det ville være en del nemmere, hvis det faktisk stod på engelsk.. men det gør det ik.. jeg har uheldigvis fået fat i den tyske version... du kan ik forklare hvor "Build" ligger henne?
Avatar billede arne_v Ekspert
20. august 2003 - 20:49 #7
Build er den 6. menu og Rebuild all er det 3. punkt.

Tysk ??????????????????????

Følg Bertels råd !

:-)

Åben en DOS box

Setup paths med:

"C:\Program Files\Microsoft Visual Studio\vc98\bin\vcvars32"

build med:

cl hello.cpp
Avatar billede arne_v Ekspert
20. august 2003 - 20:50 #8
Hvsi du ANSIficerer progarmmet til:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!\n";
    return 0;
}

skal du bruge:

cl -GX hello.cpp
Avatar billede jih Nybegynder
20. august 2003 - 21:15 #9
hmmm.... jeg har så fået det hele til at virke.... lige bortset fra en (den vigtigste del)ting (gik efter arne_v's råd)...

|-------------------|
|Kommentar: arne_v  |
|                  |  <---- det råd
|20/08-2003 20:43:08|
|-------------------|

alt kører fint uden fejl, men når jeg åbner hello.exe åbner den dos, og lukker igen (under et sek.)... hvad..?????? er der mere man skal gøre eller..? jeg har gennemgået den bog, og kan simpelthen ik finde noget som helst om det....
Avatar billede jih Nybegynder
20. august 2003 - 21:16 #10
ok... den boks var kikset... men det skulle så forestille sig at være en boks... :P
Avatar billede arne_v Ekspert
20. august 2003 - 21:24 #11
Du kan åbne en manuel DOS boks og køre programmet i den, så lukker
det ikke når programmet slutter.

Ellers så kan du bruge følgende:

#include <stdlib.h>

i toppen og lige før return 0 indsætte:

system("PAUSE");

så står den og venter på retur før den lukker.
Avatar billede jih Nybegynder
20. august 2003 - 21:36 #12
hmm... hvis jeg skriver det, kommer der fejl i alle min "<<"'er og alle mine cout'er... er der ik noget andet jeg kan gøre? hvordan er det lige man åbner den gennem DOS? hvis jeg fx skal åbne hello.exe igennem dos, hvad skal jeg så skrive?
Avatar billede arne_v Ekspert
20. august 2003 - 21:38 #13
Du åbner DOS boxen.

CD'er ned i det rigtige directory og skriver:

hello
Avatar billede arne_v Ekspert
20. august 2003 - 21:39 #14
Og det burde ikke give fejl i dine cout<< at indsætte det.
Avatar billede jih Nybegynder
20. august 2003 - 21:43 #15
WEEE!!! så ka jeg se at jeg kan programmere (eller gøre som der bliver sagt :P) mennem... har stadig den fejl med at den lukker igen, når man har åbnet den... nogen som lige kan hjælpe mig med det? det er nemlig den vigtigste del.... :/
Avatar billede arne_v Ekspert
20. august 2003 - 21:49 #16
#include <cstdlib>

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    system("pause");
    return 0;
}

virker hos mig
Avatar billede jih Nybegynder
20. august 2003 - 21:51 #17
nååå... jeg skrev det sådan her:

#include <stdlib.h>

int main()
{
  cout << "Hello World!\n";
      system("pause");
      return 0;
}

---

prøver lige..
Avatar billede jih Nybegynder
20. august 2003 - 21:54 #18
weeeeeee.... det virker... tak skal du ha... ^^

  hygge

//WebPsycho
Avatar billede arne_v Ekspert
20. august 2003 - 21:54 #19
#include <stdlib.h> (eller #include <cstdlib>) er en tilføjelse til
#include <iostream.h> (eller #include <iostream>).

system kaldet er defineret i stdlib mens cout er defineret i iostream.
Avatar billede arne_v Ekspert
20. august 2003 - 21:55 #20
Og derfor skal de begge med.
Avatar billede jih Nybegynder
20. august 2003 - 22:12 #21
kk takker... :)
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