SDL ve wxDev-C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

SDL ve wxDev-C++ – C / C++ – Fórum – Programujte.comSDL ve wxDev-C++ – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Phoenix0
Super člen
1. 8. 2007   #1
-
0
-

Přešel sem z dev-c++ na wxdev-c++ (wxWidgets zatím používat nehodlám,ale je to prý modernější verze), ale mám problém se SDL. Jakýkoli program co využívá SDL se po kompilaci spustí i s oknem konzole a to je zaprvý neestetický a zadruhý nanic.V dev-c++ to nedělalo a myslel sem že se zas tolik nezměnilo tak v čem je problém?

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Zelenáč0
Posthunter
1. 8. 2007   #2
-
0
-

Spoustis to z IDE nebo "standartne"?

Nahlásit jako SPAM
IP: ...–
Phoenix0
Super člen
1. 8. 2007   #3
-
0
-

Normálně v IDE dám F9 (zkompilovat a spustit)
edit: ale když to spustim "standartně" tak dělá to samý.

Nahlásit jako SPAM
IP: ...–
Zelenáč0
Posthunter
1. 8. 2007   #4
-
0
-

Zkus to zpustit normalne (tedy poklepanim, nebo necim takovym..) IMHO tam ta konsole je kvuli chybovym hlaskam a podobne (dela to vic prostredi)
EDIT: Tak to neporadim...

Nahlásit jako SPAM
IP: ...–
Phoenix0
Super člen
1. 8. 2007   #5
-
0
-

Divný je že ta konzole je naprosto neaktivní. Jakýkoli výstup (cout,cerr) se tam neukáže, ani vstup, protože tam není ani kurzor. A taky jde při běhu programu normálně zavřít.

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
634 příspěvků
1. 8. 2007   #6
-
0
-

Phoenix píše:#
# Divný je že ta konzole je naprosto neaktivní. Jakýkoli výstup (cout,cerr) se tam neukáže, ani vstup, protože tam není ani kurzor. A taky jde při běhu programu normálně zavřít.



V SDL je veškerý výstup do konzole přesměrován do souboru. Pokud ti je konzolové okno proti srsti, tak to vytvářej jako Win32 aplikaci a kód cpi do WinMain.

Nahlásit jako SPAM
IP: ...–
Phoenix0
Super člen
1. 8. 2007   #7
-
0
-

Ok a to se dělá jak to winmain? to bude stačit přepsat main na winmain:D?
ale pořád nemůžu pochopit proč to v dev-c++ nedělalo...

Nahlásit jako SPAM
IP: ...–
Zelenáč0
Posthunter
1. 8. 2007   #8
-
0
-

Jura píše:#
#

Phoenix píše:#
# Divný je že ta konzole je naprosto neaktivní. Jakýkoli výstup (cout,cerr) se tam neukáže, ani vstup, protože tam není ani kurzor. A taky jde při běhu programu normálně zavřít.

#
##
#V SDL je veškerý výstup do konzole přesměrován do souboru. Pokud ti je konzolové okno proti srsti, tak to vytvářej jako Win32 aplikaci a kód cpi do WinMain.#
#


To ale potom SDL ztrati jednu ze svych hlavnich prednosti...

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
634 příspěvků
1. 8. 2007   #9
-
0
-



#ifdef _WIN32
#include <windows.h>
#endif

#include "SDL/SDL.h"

#ifdef _WIN32
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
#else
int main(int argc, char* argv[])
#endif
{
....
return 0;
}


A samozřejmě nastavit v projektu Win32GUI.

Nahlásit jako SPAM
IP: ...–
Phoenix0
Super člen
1. 8. 2007   #10
-
0
-

Lol nebudete tomu věřit ale dělá to pořád:D win32gui nastavený mám...
jinak kód je:

#include <SDL/SDL.h>


#ifdef _WIN32
#include <windows.h>
#endif
SDL_Surface *screen;
SDL_Event event;

#ifdef _WIN32
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
#else
int main(int argc, char* argv[])
#endif
{
if(SDL_Init(SDL_INIT_VIDEO) < 0){
exit(1);
}
screen = SDL_SetVideoMode(800, 600, 32,SDL_HWSURFACE|SDL_DOUBLEBUF);

if (screen == NULL){
exit(2);
}
bool con=true;
while(con){
if(SDL_PollEvent(&event)){
if(event.type == SDL_QUIT) con=false;
if(event.type == SDL_KEYUP){
if(event.key.keysym.sym == SDLK_ESCAPE) con=false;
}
}
}
return 0;
}

ale problém musí bejt v překladači. Už začínám uvažovat že se vrátim na starý dobrý dev-c++....

Nahlásit jako SPAM
IP: ...–
sn3d0
Věrný člen
2. 8. 2007   #11
-
0
-

tak si odstran tie #ifdef a pouzi len WinMain ako pisal Jura.. ak ti to pojde OK, tak problem je ze nieje definovane _WIN32 .. co by znamenalo ze gcc kompilatoru treba nanutit prepinac -D_WIN32

P.S: skor ako clovek zacne na nieco nadavat ze ake je to zle urobene.. treba zacat kod studovat, nielen ho opisovat. Opisovanim sa clovek nic nenauci a pravdepodobne cielom tvojho snazenia je sa naucit nieco nie?

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Phoenix0
Super člen
2. 8. 2007   #12
-
0
-

to sn3d: nebudeš tomu věřit, ale odstranit sem to zkoušel a opravdu mě zajímalo kde se to _WIN32 definuje. Problém je v tom, že se i po odstranění těch podmínek nic nezměnilo... :(

jediná věc co mě napadla je, že to prostě to devko kompiluje v nějakým debugovacim módu a to okno tam k tomu prostě cpe (pořád jsem ale nepochopil k čemu to tam je...)

edit: tím použitím winmain se změnila jedna věc. Po zavření tý příkazovky se zavře celej program. To se normálně s main nestalo.

Nahlásit jako SPAM
IP: ...–
survik1
~ Moderátor
0
Posthunter
2. 8. 2007   #13
-
0
-

ermmm....v DevC++ to bylo nastavitelný, zda-li chcete spouštět konzoli. Myslím, že to bude i v téhle verzi....

Nahlásit jako SPAM
IP: ...–
Život je jen hra, která se nedá vyhrát.
Phoenix0
Super člen
2. 8. 2007   #14
-
0
-

to survik1: myslíš v nastavení projektu win32 gui/win32 console?

Nahlásit jako SPAM
IP: ...–
Jonyzz0
Návštěvník
2. 8. 2007   #15
-
0
-

Nedávno jsem řešil ten samý problém. Přešel jsem z Dev-c++ na wxDev-c++ a když jsem chtěl znovu zkompilovat jednu mojí starší hru v SDL tak mi wxDev
taky vytvářel konzoli.
V klasickým dev-c++ se zobrazování konzole dalo vypnout někde v nastavení projektu. Ve wxDev dato možnost není ale mělo by se to dát změnit v Menu->Nastroje->Nastavení kompilátoru->Typ kodu/optimalizace ->Linker->Nevytvářet konzoli (přepnout na Ano). Mě tato změna ale nefungovala, konzole se mi zobrazovala pořád (možná že někomu jinému tohle nastavení bude fungovat, zkuste to).
Nakonec se mi to podařilo vyřešit. Stačí k projektu přilinkovat -mwindows a konzole by se už vytvářet neměla.

Nahlásit jako SPAM
IP: ...–
mephi0
Expert
3. 8. 2007   #16
-
0
-

Ja som mal sice visual studio, ale jednoducho som vytvoril win32 aplikaciu (nie konzolu) ako empty project (bez súborov) a pridal vlastné.

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Phoenix0
Super člen
3. 8. 2007   #17
-
0
-

to Jonyzz: mooooc dík fakt to pomohlo. Jenom samotné přilinkování (jinak mám normálně main a ani sem nemusel dávat to nevytvářet konzoli) tu konzoli odstranilo.

Nahlásit jako SPAM
IP: ...–
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, 257 hostů

Podobná vlákna

Sdl c — založil marc_ramin

SDL — založil Miro1701

SDL — založil survik1

[SDL] Help — založil WraCkeR

SDL — založil survik1

Moderátoři diskuze

 

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