C++ -kysymykset

Muu yhteisön välinen keskustelu.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Joo olen. Tässä on vielä kuva kaikista kansion tiedostoista, siltä varalta, jos siellä on jotain mikä sekoittaisi suoritusta:
Attachments
comps.PNG
comps.PNG (10.29 KiB) Viewed 9905 times
Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: C++ -kysymykset

Post by Jonhu »

sisältö varmuudenvuoksi:

CONSOLE.H

Code: Select all

//**************************** BEGIN CONSOLE.H ********************************
#ifndef ECONSOLE_H
#define ECONSOLE_H

#include <windows.h>

//==============================================================================
// class Console - Eric Tetz 10/5/99
//
// Encapsulates the Windows console API (some of it).
//
// Each process can have one and only one console.  For this reason, all Console
// members are static.  If your program is already a console app, you can freely
// call any method of this class.  If your app is NOT a console app, you must
// first call Alloc() to create a console for your process and redirect IO to
// it. You may call Free() to detach your process from it's console.
//
//==============================================================================

/*  bool SetTitle (LPCSTR sTitle)
    bool SetSize (int columns, int lines)
    bool GetSize (int* pcolumns, int* plines)
    bool SetCursorPos (int x, int y)
    bool GetCursorPos (int* px, int* py)
    bool SetCursorSize (DWORD dwPercentShown, bool bVisible = false)
    bool SetTextColor (Color FgColor, Color BgColor = Black)
    bool Clear()
*/

class Console
{
public:
    enum Color
    {
        Black       = 0,
        Grey        = FOREGROUND_INTENSITY,
        LightGrey   = FOREGROUND_RED   | FOREGROUND_GREEN | FOREGROUND_BLUE,
        White       = FOREGROUND_RED   | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
        Blue        = FOREGROUND_BLUE,
        Green       = FOREGROUND_GREEN,
        Cyan        = FOREGROUND_GREEN | FOREGROUND_BLUE,
        Red         = FOREGROUND_RED,
        Purple      = FOREGROUND_RED   | FOREGROUND_BLUE,
        LightBlue   = FOREGROUND_BLUE  | FOREGROUND_INTENSITY,
        LightGreen  = FOREGROUND_GREEN | FOREGROUND_INTENSITY,
        LightCyan   = FOREGROUND_GREEN | FOREGROUND_BLUE  | FOREGROUND_INTENSITY,
        LightRed    = FOREGROUND_RED   | FOREGROUND_INTENSITY,
        LightPurple = FOREGROUND_RED   | FOREGROUND_BLUE  | FOREGROUND_INTENSITY,
        Orange      = FOREGROUND_RED   | FOREGROUND_GREEN,
        Yellow      = FOREGROUND_RED   | FOREGROUND_GREEN | FOREGROUND_INTENSITY,
    };

public:
    static bool Alloc();
    static bool Free();
    static bool SetTitle (LPCSTR sTitle);
    static bool SetSize (int columns, int lines);
    static bool GetSize (int * pcolumns, int * plines);
    static bool SetCursorPos (int x, int y);
    static bool GetCursorPos (int * px, int * py);
    static bool SetCursorSize (DWORD dwPercentShown, bool bVisible = false);
    static bool SetTextColor (Color FgColor, Color BgColor = Black);
    static bool Clear();

protected:
    static bool RedirectIoToConsole ();
};

#endif //ECONSOLE_H

CONSOLE.CPP

Code: Select all

// console.cpp
//
#include "console.h"

using namespace std;

//
// Clears the screen
//
void clrscr()
{
  COORD coordScreen = { 0, 0 };
  DWORD cCharsWritten;
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  DWORD dwConSize;
  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  GetConsoleScreenBufferInfo(hConsole, &csbi);
  dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  FillConsoleOutputCharacter(hConsole, TEXT(' '),
                             dwConSize,
                             coordScreen,
                             &cCharsWritten);
  GetConsoleScreenBufferInfo(hConsole, &csbi);
  FillConsoleOutputAttribute(hConsole,
                             csbi.wAttributes,
                             dwConSize,
                             coordScreen,
                             &cCharsWritten);
  SetConsoleCursorPosition(hConsole, coordScreen);
}

//
// Moves the cursor to x, y in console window
// ie x=left\right y=top\bottom
//
void gotoxy(int x, int y)
{
  COORD point;
  point.X = x; point.Y = y;
  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),
                           point);
}

//
// Set text and background colors
//
void setrgb(int color)
{
  switch (color)
  {
  case 0:    // White on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_INTENSITY | FOREGROUND_RED |
                        FOREGROUND_GREEN | FOREGROUND_BLUE);
    break;
  case 1:    // Red on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                         FOREGROUND_INTENSITY | FOREGROUND_RED);
    break;
  case 2:    // Green on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                      FOREGROUND_INTENSITY | FOREGROUND_GREEN);
    break;
  case 3:    // Yellow on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                      FOREGROUND_INTENSITY | FOREGROUND_RED |
                      FOREGROUND_GREEN);
    break;
  case 4:    // Blue on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                      FOREGROUND_INTENSITY | FOREGROUND_BLUE);
    break;
  case 5:    // Magenta on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                     FOREGROUND_INTENSITY | FOREGROUND_RED |
                     FOREGROUND_BLUE);
    break;
  case 6:    // Cyan on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                    FOREGROUND_INTENSITY | FOREGROUND_GREEN |
                    FOREGROUND_BLUE);
    break;
  case 7:    // Black on Gray
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                  BACKGROUND_INTENSITY | BACKGROUND_INTENSITY);
    break;
  case 8:    // Black on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                  BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                  BACKGROUND_RED | BACKGROUND_GREEN |
                  BACKGROUND_BLUE);
    break;
  case 9:    // Red on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                  BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                  BACKGROUND_RED | BACKGROUND_GREEN |
                  BACKGROUND_BLUE |
      FOREGROUND_RED);
    break;
  case 10:    // Green on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                 BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                 BACKGROUND_RED | BACKGROUND_GREEN |
                 BACKGROUND_BLUE | FOREGROUND_GREEN);
    break;
  case 11:    // Yellow on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                 BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                 BACKGROUND_RED | BACKGROUND_GREEN |
                 BACKGROUND_BLUE | FOREGROUND_RED |
                 FOREGROUND_GREEN);
    break;
  case 12:    // Blue on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                 BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                 BACKGROUND_RED | BACKGROUND_GREEN |
                 BACKGROUND_BLUE | FOREGROUND_BLUE);
    break;
  case 13:    // Magenta on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                 BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                 BACKGROUND_RED | BACKGROUND_GREEN |
                 BACKGROUND_BLUE | FOREGROUND_RED |
                 FOREGROUND_BLUE);
    break;
  case 14:    // Cyan on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                 BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                 BACKGROUND_RED | BACKGROUND_GREEN |
                 BACKGROUND_BLUE | FOREGROUND_GREEN |
                 FOREGROUND_BLUE);
    break;
  case 15:    // White on White
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                BACKGROUND_RED | BACKGROUND_GREEN |
                BACKGROUND_BLUE | FOREGROUND_RED |
                FOREGROUND_GREEN | FOREGROUND_BLUE);
    break;
  default :    // White on Black
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                FOREGROUND_INTENSITY | FOREGROUND_RED |
                FOREGROUND_GREEN | FOREGROUND_BLUE);
    break;
  }
}
NP, ite oon iha avuton Coolbasicissä..
Last edited by Jonhu on Sun Aug 10, 2008 6:37 pm, edited 1 time in total.
Tekeillä pikkupelejä ja ohjelmia :)
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

EDIT: Ratkaistu! Mulla oli Project optionsissa GUI eikä konsoli! :D Nyt toimii täydellisesti. Kiitos.
EDIT2: Ei ole kyllä nopeampi tämä kuin se mun entinen systeemi. Välkkyy vaan eri tavalla :D

Code: Select all

#include <iostream>
#include <conio.h>
#include "console.cpp"
using namespace std;

int main(int argc, char *argv[])
{
    while(true)
    {
        for(int y=0;y<20;y++)
        {
             for(int x=0;x<79;x++)
             { 
                 gotoxy(x,y);
                 cout << "#";
             }
        }
        _getch();
        clrscr();
    }

    system("pause");
    return 0;
}
Kumma kun NetHackissa, Roguessa, DoomRL:ssä jne. ei välky ollenkaan konsoli O_o'
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: C++ -kysymykset

Post by temu92 »

OFFTOPIC: Pilkunviilaus
Grandi wrote:
Jonhu wrote:Mikä kääntäjä sinulla on? itsellä on dev c++ (4.9.9.2)
Mullakin.
Dev-C++ on IDE ja siinä on kääntäjänä mukana gcc/MingW[/size][/color]
Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: C++ -kysymykset

Post by Jonhu »

Grandi wrote:EDIT: Ratkaistu! Mulla oli Project optionsissa GUI eikä konsoli! :D Nyt toimii täydellisesti. Kiitos.
EDIT2: Ei ole kyllä nopeampi tämä kuin se mun entinen systeemi. Välkkyy vaan eri tavalla :D
Kumma kun NetHackissa, Roguessa, DoomRL:ssä jne. ei välky ollenkaan konsoli O_o'
sitten ongelma on jossain muualla.. Ainakin sait uuden "kirjaston" ja sen mukana hyödyllisiä käskyjä..
Tekeillä pikkupelejä ja ohjelmia :)
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Vian on pakko olla tässä coutissa. Olisikos sille jotain korvaajaa, joka olisi hiukan nopeampi? Sen pitäisi tietenkin tulostaa konsoliin. Niin ja nuo käskyt ovat tosiaan hyödyllisiä. Ainoana tuo värinvaihto juttu on melko huono, mutta pystyn korvaamaan sen eräällä toisella kirjastolla. EDIT: Oho, tuo kirjastohan juuri käyttää sitä menetelmää, mutta asettaa samalla 16 värin rajoituksen. Tai siis... Eihän värejä ole kuin 16, mutta tarkoitin tekstin näyttämistyylejä.

EDIT: NetHack näyttäisi käyttävän Printf:ää. Taidan testata. EDIT: Yhtä hidas. Ja näitä edittejä rupes satelee vähän liikaakin.
Last edited by Koodiapina on Sun Aug 10, 2008 7:13 pm, edited 1 time in total.
User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: C++ -kysymykset

Post by Ilmuri »

CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Kiitos. Nyt on NCurses käytössä. Mutta kuten arvata saattaa, ongelmaa pukkaa; Tämä opas antaa tuommoisen ohjeen. Mutta tässä muutama avoimeksi jäänyt kysymys. Pitääkö mun siirrellä jotain filuja System32 kansioon? Mitä mä kirjoitan

Code: Select all

#include <curses.h>
tilalle, kun en tiedä edes missä se curses.h on (Kun tuolla on miljoona filua ja tuhat kansiota)? Ja kääntäjä tietenkin herjaa, kun se ei löydy samasta kansiosta (alikansiosta kylläkin). Kiitos jos joku vastaa :)

EDIT: Niin ja eihän tuo vaan ole mikään linux-only? Kun make-filestä puhutaan melkoisesti.
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: C++ -kysymykset

Post by Dande »

Grandi wrote:Kiitos. Nyt on NCurses käytössä. Mutta kuten arvata saattaa, ongelmaa pukkaa; Tämä opas antaa tuommoisen ohjeen. Mutta tässä muutama avoimeksi jäänyt kysymys. Pitääkö mun siirrellä jotain filuja System32 kansioon? Mitä mä kirjoitan

Code: Select all

#include <curses.h>
tilalle, kun en tiedä edes missä se curses.h on (Kun tuolla on miljoona filua ja tuhat kansiota)? Ja kääntäjä tietenkin herjaa, kun se ei löydy samasta kansiosta (alikansiosta kylläkin). Kiitos jos joku vastaa :)

EDIT: Niin ja eihän tuo vaan ole mikään linux-only? Kun make-filestä puhutaan melkoisesti.
Ncurses on linux-only, mutta siirtä on porttaus nimeltä pdcurses windowsille. Löydät sen täältä
Ja kun viittasit make-fileihin, niin ne eivät ole mikään linux-only juttu, vaan niitä voidaan käyttää ihan hyvin Windowsillakin.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: C++ -kysymykset

Post by Dibalo »

Grandi wrote:

Code: Select all

#include <iostream>
#include <conio.h>
#include "console.cpp"
.cpp-tiedostoa EI KOSKAAN includeteta toiseen .cpp-tiedostoon! .cpp-tiedostot välitetään linkkerille (IDE hoitaa yleensä tämän), joka luo niistä omia mooduleita (.obj), jotka linkitetään lopulliseen exeen. Tämän vuoksi kääntäjä herjaa moneen kertaan määritellystä funktioista.
The darkest spells can be found from
http://tunkkaus.blogspot.fi
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

No linkkeri mun nykyisenkin ongelman aiheutti. Kokeilin erästä esimerkkikoodia, niin tulee [linker error]:ia kymmenen kappaletta, ja sen perässä "unknown resource X". Tuo NCurses opas väittää, että pitää olla -lncurses, joten yritin sitä linkkerin asetuksiin. Linkkeri kuitenkin herjaa minkä ehtii jos se on siellä. Ja voiko se olla syynä, että käytän pdcursea, ja tuo on ncurse opas?
naabster
Member
Posts: 56
Joined: Sat Sep 22, 2007 10:10 am

Re: C++ -kysymykset

Post by naabster »

tota mistä ton vois lataa, kirjotin googleen c++ download ja sieltä tuli microsoft visual c++ express edition ja latasin sitä mutta se kestää ihan sairaasti kun se lataa,joten lopetin latauksen, ja tuskin toi oli se oikea vai ?
vai kannattaako edes siirtyä c++:saan,jos ei niin sanokaas mihin? ja voitte pistää linkin mukaan mistä sen voi ladata :D
Last edited by naabster on Mon Aug 11, 2008 4:29 pm, edited 1 time in total.
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: C++ -kysymykset

Post by -Z- »

naabster wrote:tota mistä ton vois lataa, kirjotin googleen c++ download ja sieltä tuli microsoft visual c++ express edition ja latasin sitä mutta se kestää ihan sairaasti kun se lataa,joten lopetin latauksen, ja tuskin toi oli se oikea vai ?
Mitä nyt itse olen tätä ketjua seuraillut, niin kyllä tuo oli ihan oikea, mutta Dev-c++ on kuulemma parempi IDE. Ja tämänkin olisit saanut tietää, jos olisit lukenut aiemman keskustelun.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

naabster wrote:se kestää ihan sairaasti kun se lataa,joten lopetin latauksen, ja tuskin toi oli se oikea vai ?
Kannattaa klikata latauswizardin alkaessa ladattavista asioista pois SQL server ja manuaali. Ne vievät muistaakseni puolet latausajasta, ja ne voi ladata jälkeenpäin jos tarvetta löytyy. Lisäksi manuaalia voi lukea netistä onlinenä.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: C++ -kysymykset

Post by Dibalo »

-Z- wrote:...mutta Dev-c++ on kuulemma parempi IDE...
*Reps* :lol:
The darkest spells can be found from
http://tunkkaus.blogspot.fi
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: C++ -kysymykset

Post by esa94 »

Dibalo wrote:
-Z- wrote:...mutta Dev-c++ on kuulemma parempi IDE...
*Reps* :lol:
Mitäs sille repesit? En mäkään Visual C++.Net Expressistä tykkää, se ei tykkää ei-dotnet-koodista muistaakseni.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

esa94 wrote:Mitäs sille repesit? En mäkään Visual C++.Net Expressistä tykkää, se ei tykkää ei-dotnet-koodista muistaakseni.
No älä nyt puhu suoraan sanoen paskaa. Siinä (ver. 2008 ja se on parempi kuin 2005) tulee ihkaoikea C++-kääntäjä, eli se "tykkää" koodista ihan normaalisti. Olen sillä esim. pienen SDL-pelin alun tylsyyksissäni vääntänyt ja kaikki onnistui mainiosti. Tarvitaan vain vähän skillssejä.

Kyllä minäkin vähän repeilen. "Kuulemma", "muistaakseni". Älkää kirjoitelko lämpimiksenne jos ette ole edes kokeilleet onnistuneesti.
OoO
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

No itse tarvitsisin tutoriaalin, jotta oppisin Visual C++:n käytön, siinä on niin paljon erilaisia hilavitkuttimia ja härpäkkeitä.

Esimerkiksi se tardillinen tarve niille debug- tai release-versioille. Minä kehitän ohjelmiani kuin CB:ssä, en minä tarvitse kuin yhden kansion, jossa on lähdekoodit ja exe, ja alakansiossa media. Onko tämä mahdollista Visual C++:ssa? O.o itse en moisessa onnistunut.

Lisäksi linkkerin asetukset ovat jonkun pirullisen valepohjan alla tai vastaavassa paikassa, kun en moisia mistään löydä. Kaiken kukkuraksi projektisysteemi on hieman hämyinen, ja IDE hidastelee ja tökkii kun ei ole uusinta rautaa alla.

Jos näitä onnistut valottamaan, niin uskallan ehkä kokeilla kyseistä IDEä uudelleen.

EDIT: zomglol tai vastaavaa, sehän on 900. posti D:
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

koodaaja wrote:Minä kehitän ohjelmiani kuin CB:ssä, en minä tarvitse kuin yhden kansion, jossa on lähdekoodit ja exe, ja alakansiossa media. Onko tämä mahdollista Visual C++:ssa? O.o itse en moisessa onnistunut.
Ne ihmetiedostot on vaan lisäkehitystä varten. Sen .exen pitäisi toimia ihan yksinäänkin... tai ainakin mulla kun käytin VC++ (2008). Joo ja mullakin jumittaa aika kamalasti. Suurin syy siihen miks vaihdoin aikanaan Deviin.

EDIT: Mäpä sainkin ekana 900 postia. Lälläslää :D
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

Niin no, sinä spämmit nopeammin, minkäs sille mahtaa T__T

Ja ne ihmetiedostot eivät haittaa mitään, mutta miksi hiivatissa .exeni pitää tunkea parin alakansion taakse? Ja sitten se "debug" -nimi kummittelee joka paikassa.
Post Reply