oputyk Temat założony przez niniejszego użytkownika |
Dziwne błędy i redefinicje makr - problem z jedną klasą » 2014-01-30 12:45:19 Witam wszystkich. Mam pewien problem, a mianowicie jest on związany z pewną klasą: #include"KOB.h" class KOB_Menu : public KOB { public: KOB_Menu( CW * Okno ) { okno = Okno; } void Draw( KOB *& OB ); };
oraz cpp: void KOB_Menu::Draw( KOB *& OB ) { while( okno->isKeyPressed() ) { if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) ) ob[ 0 ].x++; } ob[ 0 ].Draw(); }
Klasa KOB wygląda tak: #include"CW.h" #include"OCW.h" #include<SFML\Graphics.hpp> class KOB { protected: CW * okno; OCW * ob; public: virtual void Draw( KOB *& ) = 0; };
Moim zdaniem do tej pory wszystko wygląda jak należy, ale output wyrzuca mi takie błędy: 1>------ Rebuild All started: Project: Bomba, Configuration: Debug Win32 ------ 1> Bomba.cpp 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(19): warning C4018: '<' : signed/unsigned mismatch 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(20): warning C4018: '<' : signed/unsigned mismatch 1>Bomba.cpp(27): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data 1>Bomba.cpp(10): warning C4101: 'a' : unreferenced local variable 1> CW.cpp 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(19): warning C4018: '<' : signed/unsigned mismatch 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(20): warning C4018: '<' : signed/unsigned mismatch 1>CW.cpp(42): warning C4018: '<' : signed/unsigned mismatch 1>CW.cpp(63): warning C4018: '<' : signed/unsigned mismatch 1>CW.cpp(64): warning C4018: '<' : signed/unsigned mismatch 1>CW.cpp(74): warning C4018: '<' : signed/unsigned mismatch 1>CW.cpp(75): warning C4018: '<' : signed/unsigned mismatch 1> KOB_Menu.cpp 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(19): warning C4018: '<' : signed/unsigned mismatch 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(20): warning C4018: '<' : signed/unsigned mismatch 1>C:\Projekty\Biblioteki - Visual 2013\SFML-2.1\include\SFML/Config.hpp(129): error C2143: syntax error : missing ';' before 'namespace' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(189): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(187): error C2061: syntax error : identifier 'stdscr' 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(256) : see reference to class template instantiation 'std::_Char_traits<_Elem,_Int_type>' being compiled 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(333): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(332): error C2061: syntax error : identifier 'stdscr' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(335): error C2065: '_Count' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(336): error C2065: '_First1' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(336): error C2065: '_First2' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(336): error C2065: '_Count' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(445): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(444): error C2061: syntax error : identifier 'stdscr' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(447): error C2065: '_Count' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(448): error C2065: '_First1' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(449): error C2065: '_First2' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(449): error C2065: '_Count' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(550): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(549): error C2061: syntax error : identifier 'stdscr' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(552): error C2065: '_Count' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(553): error C2065: '_First1' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(553): error C2065: '_First2' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\iosfwd(553): error C2065: '_Count' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1518): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1518): error C2065: '_Arg' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1518): error C2988: unrecognizable template declaration/definition 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1518): error C2059: syntax error : ')' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1525): error C2065: '_Ty' : undeclared identifier 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1525): error C2923: 'std::remove_reference' : '_Ty' is not a valid template type argument for parameter '_Ty' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1527): error C2143: syntax error : missing ';' before '{' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1527): error C2447: '{' : missing function header (old-style formal list?) 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1538): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(1867): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(1933): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2420): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2498): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2497): error C2275: '_InIt' : illegal use of this type as an expression 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2495) : see declaration of '_InIt' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2497): error C2146: syntax error : missing ')' before identifier '_First' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2497): error C2433: 'wmove' : 'inline' not permitted on data declarations 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2497): error C2059: syntax error : ')' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2511): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2512): error C2143: syntax error : missing ';' before '{' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2512): error C2447: '{' : missing function header (old-style formal list?) 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2515): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2527): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(938): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1137): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1223): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1227): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1256): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1281): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1351): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1357): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1360): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1364): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1368): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1403): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1410): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1412): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1417): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1419): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1424): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1427): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1432): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1434): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1437): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1467): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1474): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1501): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1508): warning C4002: too many actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1558): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1569): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1580): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1591): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1714): warning C4002: too many actual parameters for macro 'erase' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333): error C2059: syntax error : '(' 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2297) : see reference to class template instantiation 'std::basic_string<_Elem,_Traits,_Alloc>' being compiled 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333): error C2143: syntax error : missing ')' before ',' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333): error C2059: syntax error : 'constant' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333): error C2059: syntax error : ',' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333): error C2059: syntax error : ')' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1334): error C2334: unexpected token(s) preceding '{'; skipping apparent function body 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C2059: syntax error : '(' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C2143: syntax error : missing ')' before ',' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C2535: 'int &std::basic_string<_Elem,_Traits,_Alloc>::wmove(void)' : member function already defined or declared 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333) : see declaration of 'std::basic_string<_Elem,_Traits,_Alloc>::wmove' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C2059: syntax error : 'constant' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C2059: syntax error : ',' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C2059: syntax error : ')' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1342): error C2334: unexpected token(s) preceding '{'; skipping apparent function body 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1357): error C2059: syntax error : '<L_TYPE_raw>' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1357): error C2334: unexpected token(s) preceding '{'; skipping apparent function body 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1364): error C2059: syntax error : '<L_TYPE_raw>' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1364): error C2334: unexpected token(s) preceding '{'; skipping apparent function body 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1372): error C2143: syntax error : missing ')' before '->' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1372): error C2143: syntax error : missing ';' before '->' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1372): error C2182: 'stdscr' : illegal use of type 'void' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1372): error C2059: syntax error : ')' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1373): error C2334: unexpected token(s) preceding '{'; skipping apparent function body 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2395): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2405): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2417): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2419): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2429): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2439): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2449): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(2459): warning C4003: not enough actual parameters for macro 'move' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1341): error C2535: 'int &std::basic_string<char,std::char_traits<char>,std::allocator<char>>::wmove(void)' : member function already defined or declared 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1333) : see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::wmove' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1357): error C2061: syntax error : identifier 'wmove' 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1357): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(1357): fatal error C1903: unable to recover from previous error(s); stopping compilation 1> OCW.cpp 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(19): warning C4018: '<' : signed/unsigned mismatch 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\CW.h(20): warning C4018: '<' : signed/unsigned mismatch 1> Generating Code... 1>c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\cw.cpp(60): warning C4717: 'CW::Draw' : recursive on all control paths, function will cause runtime stack overflow ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Nie mam pojęcia skąd te błędy - jakieś redefinicje itd... Dodam, że jak usunąłem klasę KOB_Menu , to wszystko pięknie działało. Więc zakładam, że to w tej klasie tkwi błąd... Z góry dzięki za zainteresowanie i pomoc. |
|
oputyk Temat założony przez niniejszego użytkownika |
» 2014-01-30 16:53:40 Nie wiem, czy to ma coś wspólnego z tym problemem, ale korzystam z biblioteki ncurses . Z nią już wcześniej miałem problemy, typu - redefinicja makra, bo np. w bibliotece string powtórzyła się ta sama nazwa kilku makr, co w ncurses. |
|
oputyk Temat założony przez niniejszego użytkownika |
» 2014-01-30 19:04:08 Ma ktoś jakiś pomysł? |
|
akwes |
» 2014-01-31 14:17:17 Spróbuj napisać minimalny kod, który daje powoduje błędy kompilacji. Nie mamy całego Twojego kodu aby stwierdzić co dokładnie może być nie tak. Natomaist cały kod będzie za duży aby ktoś go czytał. Dlatego spróbuj napisać kod, który spowoduje takie same błędy kompilacji jak teraz, ale tak aby całość mieściła się w main(). Następnie przedstaw cały main() na forum i zobaczymy co jest nie tak. |
|
oputyk Temat założony przez niniejszego użytkownika |
» 2014-01-31 14:22:10 Ok. Znalazłem błąd, ale sam nie wiem do końca w czym tkwił problem. Jedynie mogę powiedzieć, że przestawiłem kod z: #include<curses.h> #include<SFML\Graphics.hpp
na kod: #include<SFML\Graphics.hpp> #include<curses.h>
Dzięki za zainteresowanie. Zamykam. |
|
« 1 » |