[VC++ 2010 Exp] Drobne problemy z inkludowaniem plików nagłówokowych...
Ostatnio zmodyfikowano 2011-10-03 18:53
Mrovqa Temat założony przez niniejszego użytkownika |
[VC++ 2010 Exp] Drobne problemy z inkludowaniem plików nagłówokowych... » 2011-10-01 20:05:54 Witam! Piszę gierkę i staram się zachować przejrzystość kodu (z resztą jak zawsze ;P). I mam taki kłopot (załączanie się plików): --------plik1.h---------
#include "declarations.h"
namespace GS { class GameState ; } ---------plik2.h--------------
#include "declarations.h"
class
---------declarations.h------------ extern class GS::GameState;
#include "plik1.h" #include "plik2.h"
Problem w tym, że plik2.h nie widzi klasy z plik1.h :/ Mimo zapowiedzi, którą dodałem... Da się to jakoś zrobić? Czy trzeba mieć te długawe listy include ?? Zauważyłem nawet, że przez to: #include "declarations.h"
int main() { return 0; }
Wywala to: 1>d:\c++\my projects\poważne\sfml arkanoid\sfml arkanoid\main.cpp(10): error C2143: syntax error : missing ';' before '{' 1>d:\c++\my projects\poważne\sfml arkanoid\sfml arkanoid\main.cpp(14): error C2143: syntax error : missing ';' before '}' 1>d:\c++\my projects\poważne\sfml arkanoid\sfml arkanoid\main.cpp(15): error C2143: syntax error : missing ';' before '}' 1>d:\c++\my projects\poważne\sfml arkanoid\sfml arkanoid\main.cpp(15): fatal error C1004: unexpected end-of-file found
:/ Moje pytanie: czy jest jakiś sposób na takie 'fajne' inkludowanie? Czy jednak trzeba te biblioteki klepać do każdego pliku osobno? :/ Pozdrawiam, Mrowqa |
|
malan |
» 2011-10-01 22:30:58 Daj zapowiedź w plik2.h. |
|
Mrovqa Temat założony przez niniejszego użytkownika |
» 2011-10-02 13:31:45 To nic nie da (bo i tak zapowiedź jest w declarations.h) i (bo i tak sprawdziłem) - nie zadziałało ;P Jednak będę po prostu żmudnie inkludował ... :/ |
|
malan |
» 2011-10-02 17:10:57 #include "include.h"
int main() { }
#ifndef INCLUDE_H #define INCLUDE_H
#include "file1.h" #include "file2.h"
#endif
#ifndef FILE1_H #define FILE1_H
namespace Test { class File1 { public: File1(); private: }; }
#endif
#ifndef FILE2_H #define FILE2_H
class Test::File1;
class File2 { public: File2(); private: Test::File1 * ptr; };
#endif
1>------ Build started: Project: 5214, Configuration: Debug Win32 ------ 1> main.cpp 1> 5214.vcxproj -> E:\Programowanie\Visual Studio 2010 projects\5214\Debug\5214.exe ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
|
|
Mrovqa Temat założony przez niniejszego użytkownika |
» 2011-10-02 17:49:27 aaaaaa... Ja w plikach nagłówkowych inkludowałem niepotrzebnie plik z deklaracjami... :) Dzięki
ale! przez to i tak będę musiał dołączać np. vector (obojętne czy extern czy include...). |
|
malan |
» 2011-10-02 18:53:02 Nie rozumiem co Ty chcesz osiągnąć. |
|
DejaVu |
» 2011-10-02 19:37:55 On chciałby zapewne wszystkie pliki wypisać w jednym pliku i używać zapisu:
#include <wciagnij_wszystko.h>
Tyle, że tak się nie programuje :) |
|
Mrovqa Temat założony przez niniejszego użytkownika |
» 2011-10-03 18:53:29 @up O coś mniej więcej takiego mi chodziło :P Jednak nie zawsze to ma sens... (MTC było bardzo rozbudowane, więc dla ułatwienia nawigacji podzieliłem sobie kod na pliki i deklaracje wrzuciłem do jednego nagłówka, inkludowanie plików przy okazji :P). Od razu dorzucę, że podział nie był bezsensowny... (plik na procedurę do obsługi komunikatów, pomocnicze funkcje, wątki...). Póki co jednak nie korzystam z tego i chyba nie będę... chyba :D |
|
« 1 » |