Avatar billede ttn- Nybegynder
21. juli 2003 - 22:34 Der er 24 kommentarer og
1 løsning

Compiler virker ikke

Det andet topic så ud til at ryge, men arne_v det her virker fx ik:

#include <iostream>
using namespace std;
int main()
{
  cout << "Hej";
  return 0;
}
Avatar billede arne_v Ekspert
21. juli 2003 - 22:37 #1
Hvad med:

#include <iostream>
using namespace std;
int main()
{
  cout << "Hej" << endl;
  return 0;
}

?

(det er nødvendigt med den endl i nogen sammenhænge)
Avatar billede arne_v Ekspert
21. juli 2003 - 22:38 #2
C:\>type z.cpp
#include <iostream>
using namespace std;
int main()
{
  cout << "Hej" << endl;
  return 0;
}

C:\>g++ z.cpp -o z.exe

C:\>z
Hej
Avatar billede arne_v Ekspert
21. juli 2003 - 22:39 #3
C:\>gcc -v
Reading specs from C:/mingw/bin/../lib/gcc-lib/mingw32/3.1/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=f77,c++,objc,ada --disable-win32-registry --disable-shared
Thread model: win32
gcc version 3.1
Avatar billede arne_v Ekspert
21. juli 2003 - 22:41 #4
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
  cout << "Hej" << endl;
  system("PAUSE");
  return 0;
}


Hej
Press any key to continue . . .

Version 4.9.6.0
Avatar billede ttn- Nybegynder
21. juli 2003 - 22:42 #5
Jeg har ikke sagt at det ikke virker - siger bare det er min compiler der fucker max op!
Avatar billede ttn- Nybegynder
21. juli 2003 - 22:44 #6
arne kan du ikke hjælpe mig igen med hvordan jeg compiler direkte i CMD Prompt
Avatar billede arne_v Ekspert
21. juli 2003 - 22:45 #7
Hvad dækker "fucker max op" præcist over ?

Går IDE'en død ? Gør Windows død ?
Avatar billede arne_v Ekspert
21. juli 2003 - 22:47 #8
Du gemmer filen som hej.cpp i et directory.

Så åbner du en DOS box og går til det directory.

Så sætter du path. Noget a la:

PATH=C:\dev-cpp\bin;%PATH%

Så compiler du:

g++ hej.cpp -o hej.exe

Og så kører du:

hej
Avatar billede ttn- Nybegynder
21. juli 2003 - 22:48 #9
nej...

Altså... nu kan jeg jo skrive hvad der sker:

C:\c++\Projekter\test>
C:\c++\Projekter\test>Projekt1.exe

C:\c++\Projekter\test>

Efter Jeg har skrevet Projekt1.exe så laver den sådan et mellemrum... helt blankt - også går den ned, så man kan skrive projekt1.exe igen hvis man har lyst, også vil det samme ske...
Avatar billede ttn- Nybegynder
21. juli 2003 - 22:50 #10
arne hvis mit projekt så er i en anden mappe, skal jeg så først gå ind i det?
Avatar billede arne_v Ekspert
21. juli 2003 - 22:51 #11
Har du husket når du laver projektet at lave det som "console application" ?
Avatar billede ttn- Nybegynder
21. juli 2003 - 22:52 #12
Ja! Så blev problemeet løst... der gad den at skrive lortet ;)! Weeeee
Avatar billede ttn- Nybegynder
21. juli 2003 - 22:53 #13
arne> hmm, tror faktisk jeg kom til at trykke windows app. denne gang... men kan ikke huske... for i mit gamle var console det første, men her så det anderledes ud, så det er meget muligt
Avatar billede arne_v Ekspert
21. juli 2003 - 22:53 #14
Der gælder samme regel for den slags EXE filer som for andre programmer.

Hvis XYZ.EXE ligger i C:\ABC kan du enten:
  stå i C:\ABC og køre der med XYZ
eller:
  stå et andet sted og køre med C:\ABC\XYZ
Avatar billede arne_v Ekspert
21. juli 2003 - 22:55 #15
Det er ret vigtigt at du vælger console application, når det er
cin/cout du bruger.

Windows application skal du bruge når du begynder at lave Windows API
med rigtige vinduer.
Avatar billede ttn- Nybegynder
21. juli 2003 - 22:56 #16
Hehe... hvad vil du forslå er det første program man laver... med windows vinduer osv..?
Avatar billede arne_v Ekspert
21. juli 2003 - 23:00 #17
Win32 GUI programmering er et hellt nyt stort område.

Her er koden til et *tomt* vindue:

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
    static TCHAR szAppName[] = TEXT ("Test") ;
    HWND        hwnd ;
    MSG          msg ;
    WNDCLASS    wndclass ;

    wndclass.style        = CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc  = WndProc ;
    wndclass.cbClsExtra    = 0 ;
    wndclass.cbWndExtra    = 0 ;
    wndclass.hInstance    = hInstance ;
    wndclass.hIcon        = LoadIcon (NULL, IDI_APPLICATION) ;
    wndclass.hCursor      = LoadCursor (NULL, IDC_ARROW) ;
    wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
    wndclass.lpszMenuName  = NULL ;
    wndclass.lpszClassName = szAppName ;

    if (!RegisterClass (&wndclass))
    {
          MessageBox (NULL, TEXT ("This program requires Windows NT!"),
                      szAppName, MB_ICONERROR) ;
          return 0 ;
    }

    hwnd = CreateWindow (szAppName,
                          TEXT ("AVU Win32 GUI"),
                          WS_OVERLAPPEDWINDOW,       
                          CW_USEDEFAULT,             
                          CW_USEDEFAULT,             
                          CW_USEDEFAULT,             
                          CW_USEDEFAULT,             
                          NULL,                     
                          NULL,                     
                          hInstance,                 
                          NULL) ;                   
   
    ShowWindow (hwnd, iCmdShow) ;
    UpdateWindow (hwnd) ;
   
    while (GetMessage (&msg, NULL, 0, 0))
    {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
    }
    return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC        hdc ;
    PAINTSTRUCT ps ;
    RECT        rect ;
   
    switch (message)
    {
    case WM_PAINT:
          hdc = BeginPaint (hwnd, &ps) ;
         
          GetClientRect (hwnd, &rect) ;
         
          DrawText (hdc, TEXT ("Testing!"), -1, &rect,
                    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
         
          EndPaint (hwnd, &ps) ;
          return 0 ;
         
    case WM_DESTROY:
          PostQuitMessage (0) ;
          return 0 ;
    }
    return DefWindowProc (hwnd, message, wParam, lParam) ;
}
Avatar billede arne_v Ekspert
21. juli 2003 - 23:01 #18
Der er en tutorial på:
  http://www.winprog.org/tutorial/
Avatar billede ttn- Nybegynder
21. juli 2003 - 23:03 #19
dejligt arne ;)! Du fortjener alle mine point, men skal jo have nogle at gi de næste par gange også :)
Avatar billede arne_v Ekspert
21. juli 2003 - 23:04 #20
Men jeg vil anbefale dig at arbejde noget mere med console mode inden
du kaster dig over Win32 GUI.
Avatar billede arne_v Ekspert
21. juli 2003 - 23:05 #21
Ja.

Du får kun 5 om dagen.

Så du skal nok økonomisere lidt med dem.
Avatar billede ttn- Nybegynder
21. juli 2003 - 23:09 #22
arne> self. arbejder med console... skal jo lige læse alle mine kapitler igennem...

og gav dig forresten 150 for hjælp for compillen... burde du i hvert fald have fået!
Avatar billede arne_v Ekspert
21. juli 2003 - 23:19 #23
Dem har jeg fået ja.

Så jeg har fået hvad jeg skal have.

Derfor syne sjeg at du sekv skal svare på dette spørgsmål og reclaime
de 10 point.
Avatar billede ttn- Nybegynder
22. juli 2003 - 10:59 #24
problemmet er at jeg den knap hvor jeg skal give point er væk ?:\ eller er det fordi der ikke har været nogle svar ? :|
Avatar billede arne_v Ekspert
22. juli 2003 - 11:06 #25
Ja. Men det ser ud til at du har fundet ud af det.
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