Ĺadny brzuch
Witam wszystkich. Dzięki, że zechcieliście tu zajrzeć. Otóż mam problem. A mianowicie, gdy próbuje zainicjować zmienną typu COORD - [COORD txtPos = (tX, tY);], to kompilator wywala mi błąd - conversion from 'int' to non-scalar type '_COORD' requested, o co chodzi, jak to wyeliminować?Potrzebne jest mi to w funkcji
BOOL SetConsoleCursorPosition(HANDLE hConsoleOutput,
COORD dwCursorPosition);
dzięki z góry.
Garret
Dobra macie tutaj całe źródło, bo może coś ze sobą nie współgra. Możecie spróbować skompilować. Tylko się nie śmiać, każdy popełnia błędy, szczególnie jak jest początkujący. Może teraz ktoś będzie w stanie mi pomóc.
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <string>
using namespace std;
void DrawCS(string txtD,int tX, int tY, WORD color)
{
HANDLE txtH;
txtH = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(txtH, color);
SetConsoleCursorPosition(txtH, tX, tY);
cout<< txtD;
}
int main()
{
char m_menu[5][16]={
"New Game",
"Load Scenario",
"Options",
"About/Help",
"Exit"};
int cnt;
for(cnt=0;cnt<6;cnt++)
{
DrawCS(m_menu[cnt], 16, 14+cnt, BACKGROUND_BLUE| FOREGROUND_BLUE);
}
system("pause");
return(0);
}
Garret
void DrawCS(string txtD,int tX, int tY, WORD color)
{
HANDLE txtH;
txtH = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(txtH, color);
COORD coord;
coord.X=tX;
coord.Y=tY;
SetConsoleCursorPosition(txtH, coord);
cout<< txtD;
}
pozdrawiam
pepsi^no1
Dzięki pepsi, teraz wszystko mi działa. Mam tylko jeszcze jedną prośbę, ponieważ robiłem to na podstawie jednego tut'a, czy mógłbyś
(jak ktoś inny potrafi to bardzo proszę) wytłumaczyć dlaczego tamten kod działa a ten nie ?? Dzięki. Tu podaje linka. Od razu pierwsza pozycja Color Text.
www.gametutorials.com/Tutorials/c++/Cpp_Pg4.htm
Garret
to znaczy nie bardzo rozumiem co dziala a co nie bo piszesz ze ci wszystko dziala ;]
w jakim sensie tamten dziala a ten nie ;] bo mi sie oba kompiluja wiec nie wiem o co chodzi :]
pozdrawiam
pepsi^no1
Sorki może rzeczywiście trochę niezrozumiale to ująłem. No więc chodzi mi o to, dlaczego źródło z tutoriala(ze strony) działa, a to co ja napisałem nie, a tylko po przerobieniu w sposób jaki wcześniej napisał to pepsi. Jak coś trzeba jeszcze wyjaśnić to pytać. Dzięki.
Garret
funkcja SetConsoleCursorPosition wymaga jako drugiego parametru obiektu typu COORD i musi byc taki przekazany a nie jak napisales:
SetConsoleCursorPosition(txtH, tX, tY);
dlaczego? bo powyzsza funkcja ma pobierac tylko dwa parametry a ty wstawiles trzy, i drugim parametrem ma byc struktura typu` COORD okreslajaca wspolrzedne x i y. taka jest funkcja i dlatego trzeba robic tak jak jest w tutorialu albo tak jak ja napisalem.
pozdrawiam
pepsi^no1
Aha rozumiem, podałem zły przykład kodu. Gdy wcześniej próbowałem tak:
COORD txtPos = (tX, tY);
i dalej
SetConsoleCursorPosition(txtH, txtPos); (czyli tak jak jest w tutorialu) to mi wyskakiwał dokładnie ten sam błąd:(
Garret
w tym przypadku chodzi pewnie o zle uzycie nawiasow,
ty napisales: COORD txtPos = (tX, tY); //nawiasy okragle
a powinno byc: COORD txtPos = {tX, tY}; //nawiasy klamrowe
i na tym polega twoj blad.
pozdrawiam
pepsi^no1
:oops: Ale WAŁEK. Hehe - gapa ze mnie i tyle. Jak można tego nie zauważyć ;). No cóż wygląda na to że można :cheesy:. Wielkie dzięki pepsi, w przyszłości będe z większą uwagą analizował kod:D.
Garret
hehe :D zdarza sie ;]
pozdrawiam
pepsi^no1
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
BOOL SetConsoleCursorPosition(HANDLE hConsoleOutput,
COORD dwCursorPosition);
dzięki z góry.
Garret
Dobra macie tutaj całe źródło, bo może coś ze sobą nie współgra. Możecie spróbować skompilować. Tylko się nie śmiać, każdy popełnia błędy, szczególnie jak jest początkujący. Może teraz ktoś będzie w stanie mi pomóc.
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <string>
using namespace std;
void DrawCS(string txtD,int tX, int tY, WORD color)
{
HANDLE txtH;
txtH = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(txtH, color);
SetConsoleCursorPosition(txtH, tX, tY);
cout<< txtD;
}
int main()
{
char m_menu[5][16]={
"New Game",
"Load Scenario",
"Options",
"About/Help",
"Exit"};
int cnt;
for(cnt=0;cnt<6;cnt++)
{
DrawCS(m_menu[cnt], 16, 14+cnt, BACKGROUND_BLUE| FOREGROUND_BLUE);
}
system("pause");
return(0);
}
Garret
void DrawCS(string txtD,int tX, int tY, WORD color)
{
HANDLE txtH;
txtH = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(txtH, color);
COORD coord;
coord.X=tX;
coord.Y=tY;
SetConsoleCursorPosition(txtH, coord);
cout<< txtD;
}
pozdrawiam
pepsi^no1
Dzięki pepsi, teraz wszystko mi działa. Mam tylko jeszcze jedną prośbę, ponieważ robiłem to na podstawie jednego tut'a, czy mógłbyś
(jak ktoś inny potrafi to bardzo proszę) wytłumaczyć dlaczego tamten kod działa a ten nie ?? Dzięki. Tu podaje linka. Od razu pierwsza pozycja Color Text.
www.gametutorials.com/Tutorials/c++/Cpp_Pg4.htm
Garret
to znaczy nie bardzo rozumiem co dziala a co nie bo piszesz ze ci wszystko dziala ;]
w jakim sensie tamten dziala a ten nie ;] bo mi sie oba kompiluja wiec nie wiem o co chodzi :]
pozdrawiam
pepsi^no1
Sorki może rzeczywiście trochę niezrozumiale to ująłem. No więc chodzi mi o to, dlaczego źródło z tutoriala(ze strony) działa, a to co ja napisałem nie, a tylko po przerobieniu w sposób jaki wcześniej napisał to pepsi. Jak coś trzeba jeszcze wyjaśnić to pytać. Dzięki.
Garret
funkcja SetConsoleCursorPosition wymaga jako drugiego parametru obiektu typu COORD i musi byc taki przekazany a nie jak napisales:
SetConsoleCursorPosition(txtH, tX, tY);
dlaczego? bo powyzsza funkcja ma pobierac tylko dwa parametry a ty wstawiles trzy, i drugim parametrem ma byc struktura typu` COORD okreslajaca wspolrzedne x i y. taka jest funkcja i dlatego trzeba robic tak jak jest w tutorialu albo tak jak ja napisalem.
pozdrawiam
pepsi^no1
Aha rozumiem, podałem zły przykład kodu. Gdy wcześniej próbowałem tak:
COORD txtPos = (tX, tY);
i dalej
SetConsoleCursorPosition(txtH, txtPos); (czyli tak jak jest w tutorialu) to mi wyskakiwał dokładnie ten sam błąd:(
Garret
w tym przypadku chodzi pewnie o zle uzycie nawiasow,
ty napisales: COORD txtPos = (tX, tY); //nawiasy okragle
a powinno byc: COORD txtPos = {tX, tY}; //nawiasy klamrowe
i na tym polega twoj blad.
pozdrawiam
pepsi^no1
:oops: Ale WAŁEK. Hehe - gapa ze mnie i tyle. Jak można tego nie zauważyć ;). No cóż wygląda na to że można :cheesy:. Wielkie dzięki pepsi, w przyszłości będe z większą uwagą analizował kod:D.
Garret
hehe :D zdarza sie ;]
pozdrawiam
pepsi^no1