Problém s vykreslováním do okna – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s vykreslováním do okna – C / C++ – Fórum – Programujte.comProblém s vykreslováním do okna – C / C++ – Fórum – Programujte.com

 

Darker0
Duch
1. 9. 2010   #1
-
0
-

Úvodem bych rád upozornil, že jsem v C++ úplný začátečník, a je možné, že mi uniká něco základního. Chtěl jsem si skusit vytvořit program, který udšlá jednoduché okno, a něco do něj nakreslí (třeba čtvereček). Program se ale nepřeložil, funkce Rectangle(HDC,int,ini,int,int) se hlásí jako nedefinovaná. Ale ne tak jako obyčejně, chyba vyskočí až později než obvykle (nevím jak to popsat), není u ní řádek (kde se objevila).
Výpis z chybové konzole kompileru:
D:\JAKUB\Programing\okno\mojeokno.o:mojeokno.cpp:(.text+0x367):
undefined reference to `_Rectangle@20|
||=== Build finished: 1 errors, 0 warnings ===|

část programu, ve které se okno kreslí:

   case WM_PAINT:

{
HDC hdc;
PAINTSTRUCT ps;
hdc = BeginPaint( hwnd, &ps );
Ellipse( hdc, 20, 20, 160, 160 );
Rectangle(hdc,50,50,90,90); //chyba, u ostatních stejně tak
Rectangle( hdc, 100, 50, 140, 90 );
Pie(hdc,1,10,54,2,4,6,9,7);
// PaintRgn(hdc,PathToRegion(hdc));
EndPaint( hwnd, &ps );
}


PS:Bylo by dobré zmenšit velikost písma u textového pole pro zadání textu příspěvku.

Nahlásit jako SPAM
IP: 89.24.93.–
Kdo se směje nejvíc ze všech, ten se směje naposled.
liborb
~ Redaktor
+18
Guru
1. 9. 2010   #2
-
0
-

Chybu hlásí linker, protože si musíš si přilinkovat libku s Rectangle, a která to je si nejdeš v dokumentaci :).

Nahlásit jako SPAM
IP: 85.207.166.–
Darker0
Duch
1. 9. 2010   #3
-
0
-

Omlouvám se, ale nevím, co teď myslíš. Funkce by měla být definovaná, když je součástí windows.h, ne? A prosím, kde si můžu změnit heslo? Nechci mít heslo začínajíci na pr- a plné nesmyslných čislic :(

Nahlásit jako SPAM
IP: 89.24.35.–
Kdo se směje nejvíc ze všech, ten se směje naposled.
zdenda
~ Anonymní uživatel
257 příspěvků
1. 9. 2010   #4
-
0
-
Nahlásit jako SPAM
IP: 213.211.51.–
Darker
~ Anonymní uživatel
9 příspěvků
4. 9. 2010   #5
-
0
-

Takze, pokud jsem to dobre pochopil, mam definici teto funkce dat nahoru jako prototyp.
Stejne je mi divne, ze ostatni funkce funguji (napr. beginPaint() )
PS: Jak si zmenim heslo? To autogenerovane si nezapamatuju, dokud mi nekdo neporadi, budu muset psat bez acc.

Nahlásit jako SPAM
IP: 89.24.231.–
liborb
~ Redaktor
+18
Guru
6. 9. 2010   #6
-
0
-

Když vytvoříš knihovnu, kterou použiješ v aplikaci, tak potřebuješ hlavičkový soubor (.h), aby aplikace věděla, jaké má funkce parametry, návratovou hodnotu atd. Pro překlad potřebuješ ještě soubor .lib, který vznikne při tvorbě knihovny dll. V také .lib je napsáno, kde a jak se ta funkce najde - je tam prostě napsáno, ve které dll a na které adrese ji najde. No a pro souštění potřebuješ tu knihovnu.

Na konci té stránky, co se postnul zdenda, je napsáno, že pro Rectangle potřebuješ takový a takový hlavičkový soubor a takovou a takovou libku. BeginPaint (http://msdn.microsoft.com/en-us/library/dd183362(VS.85).aspx) je v jiné knihovně, a proto ti to funguje. Stačí prostě přidat někam do nastavení projektu (podle toho v čem to děláš) Gdi32.lib.

A s tím heslem ... jestli myslíš tady na fóru, tak po přehlášení stačí kliknout na tvůj nick vpravo nahoře a přejdeš na Nastavení účtu, kde by se mělo dát heslo změnit. Když to nepůjde, tak se obrať na vrchního velitele (Curo).

Nahlásit jako SPAM
IP: 85.207.166.–
Darker0
Duch
7. 9. 2010   #7
-
0
-

Už to chápu, s tím lib, ale heslo se mi yměnit nepodařilo. V nastavení účtu jsou dva inputy :heslo a heslo-kontrola.
Když je vyplním dostanu další autovygenerované heslo, po odeslání nastavení na server. 6ádné políčko pro nové heslo tam není.

Nahlásit jako SPAM
IP: 212.67.74.–
Kdo se směje nejvíc ze všech, ten se směje naposled.
Darker
~ Anonymní uživatel
9 příspěvků
15. 9. 2010   #8
-
0
-

Ahoj. Používám CodeBlocks, a nemůžu to tam nikde najít. Ani ten soubor nikde není uložený, k disposici.

Nahlásit jako SPAM
IP: 89.24.7.–
zdenda
~ Anonymní uživatel
257 příspěvků
15. 9. 2010   #9
-
0
-

Project - Build options - Linker settings - Link libraries - Add - gdi32

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý