C++ -kysymykset

Muu yhteisön välinen keskustelu.
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: C++ -kysymykset

Post by DJ-Filbe »

Mites suljen ohjelman kun olen for -loopissa? system("exit") ei toimi koska se siirtyy ilmeisesti vain pois silmukasta.
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: C++ -kysymykset

Post by SPuntte »

DJ-Filbe wrote:Mites suljen ohjelman kun olen for -loopissa?
Komento break rikkoutuu ulos silmukasta. Myös "return 0;" missä tahansa kohdassa main-funktiota tarkoittaa ohjelman virheetöntä lopettamista.

EDIT:
system("exit") ei toimi koska se siirtyy ilmeisesti vain pois silmukasta.
Komento system käynnistää järjestelmän komentotulkin ja antaa ohjelman kontrollin sille, kunnes annetut komennot on suoritettu ja kontrolli palaa tulkkia kutsuneeseen ohjelmaan. "system('exit');" siis vain käynnistää komentotulkin ja sulkee sen saman tien.
Last edited by SPuntte on Fri Sep 03, 2010 6:37 pm, edited 1 time in total.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: C++ -kysymykset

Post by DJ-Filbe »

SPuntte wrote:
DJ-Filbe wrote:Mites suljen ohjelman kun olen for -loopissa? system("exit") ei toimi koska se siirtyy ilmeisesti vain pois silmukasta.
Komento break rikkoutuu ulos silmukasta. Myös "return 0;" missä tahansa kohdassa main-funktiota tarkoittaa ohjelman virheetöntä lopettamista.
Olisimpa älynnyt tuon "ritöörn zero" :n :D
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: C++ -kysymykset

Post by MaGetzUb »

Ehm, latasin tuon SDL_gfx paketin, missä mahtaa olla ne .obj tiedostot? :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: C++ -kysymykset

Post by esa94 »

MaGetzUb wrote:Ehm, latasin tuon SDL_gfx paketin, missä mahtaa olla ne .obj tiedostot? :)
Eikös siellä pitäisi olla .lib, .a ja .dll -tiedostoja?
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: C++ -kysymykset

Post by JATothrim »

MaGetzUb wrote:Ehm, latasin tuon SDL_gfx paketin, missä mahtaa olla ne .obj tiedostot? :)
Niitä ei ole. Sinun täytyy kääntää kirjasto. (jolloin tuloksena on staattinen .a kirjasto, koska taidat kääntää kirjastoa nimen omaan MinGW:llä) Tämä on jo hieman hankalampi toimitus. Code::Blocks säästää pienen vaivan kun importtaat VC++ solution filun ("SDL_gfx.sln") editoriin jolloin samalla mukaan tulee kaikki SDL_gfx:n projektit ja testit.
Tämän jälkeen projektin asetukset pitää syynätä tarkasti. 1) Tarkista että Release buildtargettin kuuluu oikeat tiedostot.
2) Projektin tyyppi on oikea. (Static library)
3) Buildtargetin kääntäjän flagit ja asetukset on oikein. (mm. Debuggausta ei tarvita!) (VC++ projektien importtaus Code::Blocksiin heittää ne päin puuta, kun käytetään MinGW:tä)
4) kirjasto (SDL_gfx.a) ja objekti filut (filu.o) pusketaan järkeviin kansioihin.
Tämän jälkeen voi koettaa iskeä F9:ä. Jos kaikki meni tuurilla, kirjasto on käännetty. (Aploodit!) :)
5) Anna linkkerille tarpeeksi kirjastoja! jos linkkeri huutaa, koeta keksiä mikä kirjasto (esim. kernel32, opengl32, libSDL) ect. parametri puuttuu.
6) Lisää kirjaston kansio kääntäjän search hakemistoihin! (ei mielellään projekin asetuksista vaan suoraan globaaleihin kääntäjän asetuksiin) muuten mm. #include <SDL/SDL_gfx.h> ja linkkaus eivät onnistu.

Nämä ohjeet on siis tarkoitettu vain ainoastaan Code::Blocks (10.04), MinGW, SDL_gfx yhdistelmälle.

Jos et saa toimimaan ylemmällä tavalla, kokeile pommin varmaa: kopioi SDL_gfx:n sorsat omaan projektiisi (vain .h ja .c tiedostot!) ja lisää ne projektiin mukaan. Hit the F9 and be done. Tässä on vain se huono puoli SDL_gfx:n sorsien sisällyttäminen omaan projektiin ei ole kovin nättiä ja älykästä: kun teet seuraavan projektin koko komma pitää tehdä uudestaan. Lisäksi pelkän kirjaston päivittäminen on vaikeaa.
Last edited by JATothrim on Thu Sep 09, 2010 11:34 am, edited 1 time in total.
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: C++ -kysymykset

Post by DJ-Filbe »

Miten C++ :lla piirretään piste CB:n Dot -komennon tapaan? Pöyristyttävää että neuvoja ei löydy googlettamalla...
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: C++ -kysymykset

Post by TheFish »

DJ-Filbe wrote:Miten C++ :lla piirretään piste CB:n Dot -komennon tapaan? Pöyristyttävää että neuvoja ei löydy googlettamalla...
Mitähän kirjastoa mahdat käyttää?
CoolBasic henkilökuntaa
Kehittäjä
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

Jos ihan ilman kirjastoja tahtoo niin menee melkein inline assemblyksi jossa asetat grafiikkatilan ja naksautat pisteen suoraan näyttömuistiin, mutta enpä suosittelisi sitä enää oikein kellekään nykypäivänä.

Jos kovin lähelle rautatasoa tahtoo niin OpenGL ja DirectX ovat tutustumisen arvoisia, jos haluat yksinkertaisempaa graffaa niin WinApilta voi noutaa sopivan tason piirtämistä varten tai käyttää SDL:n ja allegron tapaisia kirjastoja.
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: C++ -kysymykset

Post by DJ-Filbe »

TheFish wrote:
DJ-Filbe wrote:Miten C++ :lla piirretään piste CB:n Dot -komennon tapaan? Pöyristyttävää että neuvoja ei löydy googlettamalla...
Mitähän kirjastoa mahdat käyttää?
Vaihdan kysymyksen. Mikä on suhteessa nopein ja helpoin tapa piirtää viivoja, pisteitä ja ympyröitä C++ :lla?
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: C++ -kysymykset

Post by SPuntte »

DJ-Filbe wrote:Mikä on suhteessa nopein ja helpoin tapa piirtää viivoja, pisteitä ja ympyröitä C++ :lla?
Riippuu ihan laitteistostasi. Ilman kovin tehokasta näytönohjainta nopein tapa lienee tosiaan inline ASM + Bresenhamin algoritmi -yhdistelmä, muuten jokin laitteistokiihdytystä hyödyntävä grafiikkakirjasto, eli käytännössä OpenGL tai Direct3D.

Itse tekisin kyllä helpoimmalla, tai helpoiten opittavalla tavalla. Esimerkiksi OpenGL + GLFW-yhdistelmä on varmaan yksi helpoimmista.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: C++ -kysymykset

Post by esa94 »

DJ-Filbe wrote:Mikä on suhteessa nopein ja helpoin tapa piirtää viivoja, pisteitä ja ympyröitä C++ :lla?
Suhteessa nopein tapa on edelleen inline-assembly,
EDIT:

Laitteistokiihdytys on tosiaan nopeampi. OpenGL.

helpoin taas joku kirjasto joka ne viivat sinulle piirtelee. Kaikki muu on siitä välistä.

Saatat tykätä SFML-kirjastosta.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: C++ -kysymykset

Post by MaGetzUb »

Ehkä aloittelija ystävällisin olisi SDL + SDL_gfx (en ole vain itse vieläkään saanut linkitettyä sitä). :D
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: C++ -kysymykset

Post by esa94 »

MaGetzUb wrote:Ehkä aloittelija ystävällisin olisi SDL + SDL_gfx (en ole vain itse vieläkään saanut linkitettyä sitä). :D
-lSDL_main -lSDL -lSDL_gfx ?
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: C++ -kysymykset

Post by JATothrim »

MaGetzUb wrote:Ehkä aloittelija ystävällisin olisi SDL + SDL_gfx (en ole vain itse vieläkään saanut linkitettyä sitä). :D
Saitko siis buildattua sen SDL_gfx kirjaston? SDL_gfx.a tiedoston pukkasi ulos? Lisää se plus perus SDL:n kirjastot linkkerille. Ohjeessani sainoin, että pitää lisää hakemistoja etsittäväksi kääntäjälle/linkkerille. Tämä tarkoitti myös sitä, että linkkerikin löytäisi käännetyn SDL_gfx:n vain kirjoittamalla "libSDL_gfx" "Linker Libraries" listaan Code::Blocksissa.
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: C++ -kysymykset

Post by legend »

Eli siis kysymys olisi Nokian Qt c++ ohjelmointi kieltä koskevista kysymyksistä.
1. Yksinkertaisesti miten voin käynnistää toisen ohjelman?

2. Tehdä monta eri desing (.ui) ikkunaa?
2,5. Miten sitten niitä voisi vaihtaa?

3. Kumpaa suosittelette tätä vai Flashia vai Javaa?
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: C++ -kysymykset

Post by esa94 »

legend wrote:Eli siis kysymys olisi Nokian Qt c++ ohjelmointi kieltä koskevista kysymyksistä.
1. Yksinkertaisesti miten voin käynnistää toisen ohjelman?

2. Tehdä monta eri desing (.ui) ikkunaa?
2,5. Miten sitten niitä voisi vaihtaa?

3. Kumpaa suosittelette tätä vai Flashia vai Javaa?
Qt ei ole ohjelmointikieli vaan kehyskirjasto, jonka avulla voi mm. ikkunoida alustariippumattomasti.

1. QProcess

2. Samoin kuin yhdenkin
2,5. Avaa toinen ja sulje edellinen?

3. Tätä.
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: C++ -kysymykset

Post by legend »

esa94 wrote:
legend wrote:Eli siis kysymys olisi Nokian Qt c++ ohjelmointi kieltä koskevista kysymyksistä.
1. Yksinkertaisesti miten voin käynnistää toisen ohjelman?

2. Tehdä monta eri desing (.ui) ikkunaa?
2,5. Miten sitten niitä voisi vaihtaa?

3. Kumpaa suosittelette tätä vai Flashia vai Javaa?
Qt ei ole ohjelmointikieli vaan kehyskirjasto, jonka avulla voi mm. ikkunoida alustariippumattomasti.

1. QProcess

2. Samoin kuin yhdenkin
2,5. Avaa toinen ja sulje edellinen?

3. Tätä.
Kiitti, mutta on vielä pieni ongelma nyt osaan (kun ohjelma käynnistyy) määrätä mikä .ui ikkuna aukeaa, mutta vaihdossa on pientä ongelmaa. Yritin käyttää samaa koodia kuin millä se käynnistetään, mutta mitään ei tapahdu.
Vaihtamis koodi (kohta) näyttää tältä. Eli kun painan Siirto1 nappulaa , nykyisen ikkunan pitäisi tuhoutua ja uusi pitäisi avata.

Code: Select all

void MainWindow::on_Siirto1_clicked()
{
    MainWindow a;
    a.destroy(true);


      Dialog w;
      #if defined(Q_WS_S60)
         w.showMaximized();
      #else
        w.show();
      #endif


}
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: C++ -kysymykset

Post by esa94 »

legend wrote:Eli kun painan Siirto1 nappulaa , nykyisen ikkunan pitäisi tuhoutua ja uusi pitäisi avata.

Code: Select all

void MainWindow::on_Siirto1_clicked()
{
    MainWindow a;
    a.destroy(true);


      Dialog w;
      #if defined(Q_WS_S60)
         w.showMaximized();
      #else
        w.show();
      #endif


}

Code: Select all

void MainWindow::on_Siirto1_clicked()
{

      Dialog w;
      #if defined(Q_WS_S60)
         w.showMaximized();
      #else
        w.show();
      #endif

      this->destroy(true);

}
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: C++ -kysymykset

Post by legend »

äähh.. Mikään ei onnistu :evil:
Nyt kun yritän tehdä jotain yksinkertaista, eli ohjelmaa joka käynnistäisi flash sovelluksen, mutta koko ajan tulee errori "ei ole tiedostopolkua".
Esimerkki voisi olla paikallaan tai hyvät ohjeet..
koodin pätkä :oops:

Code: Select all

int QProcess::execute("c:\testi.swf");
Post Reply