Első programunk

 

Találtam egy pár hivatkozást, ami a témával foglalkozik, "természetesen" angolul. Hát tudok én angolul?!?

Na jó, egy kicsit, elvégre az évek alatt ragadt mint a kosz. De ennyi. A programozáshoz azért pont elég szokott lenni. A következőkben többnyire fordítások következnek majd a következő oldalról.

Amennyiben jobb az angolod mint az enyém (ez valószínű:)), és hibát vagy pontatlanságot találsz, kérlek közöld velem, hogy javíthassam a közjó érdekében!

Szóval próbáljuk meg mondjuk ezt itt:  http://www.winprog.org/tutorial/start.html

Amikor egy új programot kezdünk írni, akkor pár dolgot be kell állítanunk a fejlesztő környezetnek. Semmi vészes, de itt képekkel illusztrálva lehet puskázni. Első link a konzolos alkalmazásnak, második a windózosnak. Köszönet a szerzőnek érte :)

 

Azzal kezdi, hogy a példakódokat mindenképpen töltsük le, mert csak a fontos elemeket fogja idézni, és nem közli újra a teljes programot! Megemlíti továbbá, hogy elvár bizonyos ismereteket, tehát akinek nem mond semmit a macro, typedef vagy a switch(), az előbb mélyedjen el jobban a C nyelvben.

A szerző felhívja a figyelmet, hogy a használt nyelv a C, és nem a C++, tehát a fájlok kiterjesztése .C lesz, nem pedig .CPP! A fordítónak gondot okozhat a figyelmetlenség.

 

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
    return 0;
}


Így elsőre nem is tűnik túl bonyolultnak! Azért azt jegyezzük meg, hogy mire ezzel a tutoriallal végzünk, valószínűleg gond nélkül megy majd a tíz ujjas vakon gépelés :)

Ha valamiért nem működne ez a program elsőre, akkor győződjünk meg róla, hogy a projekt beállításkor Win32 alkalmazást állítottunk be, és még véletlenül sem konzolt! Kicsit más világ. Ha még mindig nem jó, akkor gáz van, meg kell keresni a hibát. Ebben a szerző sem tud további segítséget nyújtani.

Nekem amúgy nem ment elsőre. Ha csak indítok egy új win32 projektet, akkor hiába másolom be a fenti pár sort, két warninggal jutalmaz (mondjuk legalább lefordul), és a megjelenő ablakban nem a szöveg, hanem sok kis négyzet jelenik meg. Ha a példák között szereplő test.c-t nyitom meg projektként, akkor bezzeg lefordul, fut, és azt írja ki amit kell. Ki érti ezt?!? Gondolom ez még kiderül később.

Nézzük tételesen!

 

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, int nCmdShow)

A fenti sor ugyanaz, mint a hagyományos main() függvényünk volt! Ezzel kezdődik a program. Van pár paramétere, most ezeket vegyük szemügyre!

- HINSTANCE hInstance: Programpéldányunk címe, vagy handlere (ez tulajdonképpen maga az .exe)

- HINSTANCE hPrevInstance: Win32 programoknál mindig NULL az értéke.

- LPSTR lpCmdLine: A parancssori paraméterek egyszerű sztringként, a program neve nélkül.

- int nCmdShow: Int típus a ShowWindow() számára. Később bővebben rátérünk.

A WinAPI meghatározza a hívási konvenciókat, ezt _stdcall néven tisztelhetjük. Valószínűleg nem lesz rá szükségünk,

 Következő alkalommal egy egyszerű ablakot fogunk a képernyőre varázsolni.

A bejegyzés trackback címe:

https://win32learning.blog.hu/api/trackback/id/tr906240161

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása