Dev c++ Hello World

Dev c++ Hello World
2011-04-02T14:41:52+02:00
2011-04-05T22:16:58+02:00
2022-11-21T10:15:41+01:00
kovacs_marton
Hello!

Letöltöttem a Dev c++ programot.Létrehoztam egy új Windows Application projektet. Itt már előre beír nekem 87 sor kódot,ami az ablak maga.

Egy nagyon egyszerű kérdésem lenne.Mivel már elkezdtem olvasgatni a c++ -ról ezért tudom ,hogy ez írja ki a hello world-öt:
int main() { std::cout << "Helló, world!\n"; return 0; }
De ezt a pár sort hova kell tennem?Mert sima dos-os programként működik,de ha Windows Application-be csinálom akkor azt se tudom hova kell betennem.


Erről semmit nem találtam azért írtam,remélem tud valaki segíteni.
Mutasd a teljes hozzászólást!
Kérdésben a felelet:

sima dos-os programként működik

csináld síma DOS-programként, és működni fog!
Mutasd a teljes hozzászólást!

  • pl ide:


    hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Helló, world!", /* Title Text */
    Mutasd a teljes hozzászólást!
  • int WINAPI WinMain ... ...... ...... ShowWindow (hwnd, nFunsterStil); MessageBox (NULL, "Hello World!", MB_OK); ..... ..... return messages.wParam; }
    Mutasd a teljes hozzászólást!
  • Az előbb egy paraméter kimaradt

    Ez a sor: MessageBox (NULL, "Hello World!", MB_OK);
    helyesen: MessageBox (NULL, "Hello World!","Üdvözlő", MB_OK);

    Bocs!
    Mutasd a teljes hozzászólást!
  • Megpróbáltam de hibát írt ki:
    15 C:\Users\Márk\Desktop\main.cpp expected constructor, destructor, or type conversion before '(' token
    15 C:\Users\Márk\Desktop\main.cpp expected `,' or `;' before '(' token
    16 C:\Users\Márk\Desktop\main.cpp expected unqualified-id before "return"
    16 C:\Users\Márk\Desktop\main.cpp expected `,' or `;' before "return"
    17 C:\Users\Márk\Desktop\main.cpp expected unqualified-id before '{' token
    17 C:\Users\Márk\Desktop\main.cpp expected `,' or `;' before '{' token
    C:\Users\Márk\Desktop\Makefile.win [Build Error] [main.o] Error 1


    A kódomból egy részlet:
    int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) ShowWindow (hwnd, nFunsterStil); MessageBox (NULL, "Hello World!","Üdvözlő", MB_OK); return messages.wParam; { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */
    Mutasd a teljes hozzászólást!
  • Bemásolom az egész WinMain-t. Ez nálam tökéletesen működik:

    int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ /* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof (WNDCLASSEX); /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use Windows's default color as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; /* Register the window class, and if it fails quit the program */ if (!RegisterClassEx (&wincl)) return 0; /* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Windows App", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); /* Make the window visible on the screen */ ShowWindow (hwnd, nFunsterStil); MessageBox (NULL, "Hello World!","Üdvözlő", MB_OK); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; }
    Mutasd a teljes hozzászólást!
  • Kérdésben a felelet:

    sima dos-os programként működik

    csináld síma DOS-programként, és működni fog!
    Mutasd a teljes hozzászólást!
  • de ha Windows Application-be csinálom akkor azt se tudom hova kell betennem.


    Ez szerintem azt jelenti, hogy Windows Application-be próbálja kiiratni a "Helló, world!"-öt (ha nem tévedek).
    Mutasd a teljes hozzászólást!
  • > Windows Application-be próbálja kiiratni a "Helló, world!"-öt

    Így van, ez a probléma oka. Ezek a példaprogramok, amiket ő egy könyvből begépel, nem a Windows-módhoz valók.
    Mutasd a teljes hozzászólást!
  • Nálam Dev-C++ -al Windows Application esetén a "MessageBox" tökéletesen működik, ahogy fentebb írtam.
    Mutasd a teljes hozzászólást!
  • Akkor én is bemásolom az egész programot, mert nem értetted meg a hozzászólásomból.
    Vastagon kiemeltem, hogy hová kell beírnia a "Helló, world!"-öt.


    #include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ /* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof (WNDCLASSEX); /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use Windows's default color as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; /* Register the window class, and if it fails quit the program */ if (!RegisterClassEx (&wincl)) return 0; /* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Helló, world!", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); /* Make the window visible on the screen */ ShowWindow (hwnd, nFunsterStil); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; } /* This function is called by the Windows function DispatchMessage() */ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }
    Mutasd a teljes hozzászólást!
  • Ha egy ilyen választ fogadsz el, akkor miért írtad az elején ezt:

    Mert sima dos-os programként működik,de ha Windows Application-be csinálom akkor azt se tudom hova kell betennem.


    Ebből arra lehet következtetni, hogy sima parancssori programként már megvalósítottad a "Hello World" programot, csak most GUI programként is szeretnéd látni.
    Miért vezeted félre a népet?
    Mutasd a teljes hozzászólást!
  • (Off: a programozói munka egyik fontos része, hogy hiányos vagy pontatlan specifikációból is rájöjjünk, hogy mit szeretne a felhasználó. Nem kell hozzá semmi más, mint sok év tapasztalata;)
    Mutasd a teljes hozzászólást!
  • Ennek nincs értelme.
    Hogy a fenébe juthatott eszedbe azt javasolni neki, hogy sima parancssori programot írjon, amikor már leírja, hogy az működik?
    Mutasd a teljes hozzászólást!
  • Teljesen egyetértek abban, ha a kérdező leírja, hogy Dos-os programként működik és Windows Application-be fogalma sincs, hogy hova kéne írnia, akkor miért azt javasolta neki, hogy maradjon csak a Dos-nál, a Windows Application-al ne is próbálkozzon.

    Viszont a kérdező elfogadta megoldásként. Igazából ezt én sem tudom hová tenni, de tudomásul kell venni.

    Részlet a pontozási rendszerből:

    A felvetésre bárki válaszolhat, de a kérdés felvetőjének feladata a válaszok közül a megoldást (több helyes válasz esetén a legátfogóbb, legegyszerűbb megoldást) jelentő hozzászólás kiválasztása.


    Ha ez a válasz a kérdezőnek megfelel...
    Mutasd a teljes hozzászólást!
  • Pontosan erre válaszoltam az előbb: hála az összegyüjtögetett életbölcsességemnek, rájöttem, hogy mi a kérdező igazi problémája; nevezetesen, hogy nem tudja, mi a különbség a CLI és a GUI mód között, és azt gondolja, hogy ami az egyikben jó, az triviális módosítással jó lesz a másikban is; tehát a válasz, ami tényleg előrevitte őt a megértésben, az épp az volt, amit adtam neki.
    Mutasd a teljes hozzászólást!
  • rájöttem, hogy mi a kérdező igazi problémája; nevezetesen, hogy nem tudja, mi a különbség a CLI és a GUI mód között,


    Nyilvánvaló. Erre mindenki rájött rögtön, de ettől ő még határozottan a GUI verziót kérte.

    Idézet:
    ha Windows Application-be csinálom akkor azt se tudom hova kell betennem.
    Erről semmit nem találtam azért írtam,remélem tud valaki segíteni.


    Na mindegy. Hagyjuk!
    Mutasd a teljes hozzászólást!
  • Idézem amit beírt a zöldfülű:
    int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) <- ide nem kéne valami? ShowWindow (hwnd, nFunsterStil); MessageBox (NULL, "Hello World!","Üdvözlő", MB_OK); return messages.wParam; { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */

    Na, ha ezt mondta volna valaki, akkor ok, de így NevemTeve abszolút megérdemli a pontot.
    Szerintem a console applikáció is sok neki.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd