Gość Gelldur Napisano Wrzesień 24, 2008 Zgłoś Share Napisano Wrzesień 24, 2008 Witam mam problem gdy kompiluje kod wyskakuje mi coś takiego ale nie wiem o co chodzi ------ Rebuild All started: Project: Nico, Configuration: Debug Win32 ------ Deleting intermediate and output files for project 'Nico', configuration 'Debug|Win32' Compiling... game.cpp mian.cpp Generating Code... Compiling manifest to resources... Microsoft ® Windows ® Resource Compiler Version 6.0.5724.0 Copyright © Microsoft Corporation. All rights reserved. Linking... mian.obj : error LNK2005: "enum POLE (* g_Plansza)[3]" (?g_Plansza@@3PAY02W4POLE@@A) already defined in game.obj mian.obj : error LNK2005: "enum STAN_GRY g_Stan_Gry" (?g_Stan_Gry@@3W4STAN_GRY@@A) already defined in game.obj game.obj : error LNK2001: unresolved external symbol "enum ZNAK g_Aktualny_Gracz" (?g_Aktualny_Gracz@@3W4ZNAK@@A) C:\Documents and Settings\Gelldur\Moje dokumenty\Visual Studio 2008\Projects\Nico\Debug\Gra wersja 2.exe : fatal error LNK1120: 1 unresolved externals Build log was saved at "file://c:\Documents and Settings\Gelldur\Moje dokumenty\Visual Studio 2008\Projects\Nico\Gra wersja 2\Debug\BuildLog.htm" Gra wersja 2 - 4 error(s), 0 warning(s) ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ========== Link do komentarza Udostępnij na innych stronach More sharing options...
filuu Napisano Wrzesień 24, 2008 Zgłoś Share Napisano Wrzesień 24, 2008 Hmm, wygląda mi na błąd. Lubię cytryny ! Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Wrzesień 24, 2008 Zgłoś Share Napisano Wrzesień 24, 2008 Pewnie dwa razy definiujesz cos lub dwa razy includujesz w mainie Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Wrzesień 25, 2008 Zgłoś Share Napisano Wrzesień 25, 2008 Szczerze to robię tak definiuje coś w 1 pliku nazwa.cpp a wywołuje to w main.cpp i właśnie mam ten błąd ;/ oto kod może cuś nie tak void main() { Start_Gry(); for (; { // ... Rysowanie_Planszy(); if (g_Stan_Gry == S_RUCH) { unsigned u_Numer_Pola; std::cin >> u_Numer_Pola; Ruch (u_Numer_Pola); } else if (g_Stan_Gry == S_WYGRANA || g_Stan_Gry == S_REMIS) break; } _getch(); } Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Wrzesień 25, 2008 Zgłoś Share Napisano Wrzesień 25, 2008 a o plikach *.h słyszałeś? może tu masz jakiś błąd... Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Wrzesień 26, 2008 Zgłoś Share Napisano Wrzesień 26, 2008 Oto plik.h nie widze tu błędu ;/ enum ZNAK { Z_KOLKO = 'O', Z_KRZYZYK = 'X' }; enum POLE { P_PUSTE, P_KOLKO = Z_KOLKO, P_KRZYZYK = Z_KRZYZYK }; enum STAN_GRY { S_NIEROZPOCZETA, S_RUCH, S_WYGRANA, S_REMIS }; //Prototypy //Rozpoczecie gry bool Start_Gry(); //wykonywanie ruchu bool Ruch(unsigned); //Rysowanie planszy bool Rysowanie_Planszy(); POLE g_Plansza[3][3] = { { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE } }; STAN_GRY g_Stan_Gry = S_NIEROZPOCZETA; extern ZNAK g_Aktualny_Gracz; Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Wrzesień 26, 2008 Zgłoś Share Napisano Wrzesień 26, 2008 tak na szybko i bez wnikania w szczegóły to mi sie ta linijka nie podoba: extern ZNAK g_Aktualny_Gracz; jeśli chodzi o resztę... to mi się wydaje, że nie pokazałeś całej zawartości tego pliku... Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Wrzesień 26, 2008 Zgłoś Share Napisano Wrzesień 26, 2008 Tak z tym extern może być nie tak, odkomentuj i zobacz czy są błędy kompilacji Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Wrzesień 28, 2008 Zgłoś Share Napisano Wrzesień 28, 2008 g_Aktualny_Gracz undeclared identifier to mi wyskakuje to extern wysyła z pliku nagłówkowego późne wiązanie do zmiennej jakoś tak to bez tego nie da sie inaczej tego zrobic pokaże może jak cały kod wygląda tych 3 plików Plik nagłówkowy enum ZNAK { Z_KOLKO = 'O', Z_KRZYZYK = 'X' }; enum POLE { P_PUSTE, P_KOLKO = Z_KOLKO, P_KRZYZYK = Z_KRZYZYK }; enum STAN_GRY { S_NIEROZPOCZETA, S_RUCH, S_WYGRANA, S_REMIS }; //Prototypy //Rozpoczecie gry bool Start_Gry(); //wykonywanie ruchu bool Ruch(unsigned); //Rysowanie planszy bool Rysowanie_Planszy(); POLE g_Plansza[3][3] = { { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE } }; ZNAK g_Aktualny_Gracz; STAN_GRY g_Stan_Gry = S_NIEROZPOCZETA; extern STAN_GRY g_Stan_Gry; Plik z właściwym kodem #include <iostream> #include <conio.h> #include <ctime> #include "game1.h" bool Start_Gry() { if (g_Stan_Gry = S_NIEROZPOCZETA) return true; else std::cout << " Jakiś ERRoR przy starcie gry" << std::endl; _getch(); // Losowani gracza ktory bedzie 1 srand (static_cast<unsigned>(time(NULL))); g_Aktualny_Gracz = (rand() % 2 == 0 ? Z_KOLKO : Z_KRZYZYK); // Ustawiamy stan gry na Ruch g_Stan_Gry = S_RUCH; return true; } bool Ruch( unsigned u_Numer_Pola ) { if (g_Stan_Gry = S_RUCH) return true; else std::cout << " Jakiś ERRoR przy Funkcji Ruch()" << std::endl; _getch(); if (u_Numer_Pola >= 1 && u_Numer_Pola <= 9) return true; else std::cout << " Jakiś ERRoR wpisaniu liczby pola gry" << std::endl; _getch(); unsigned uY = (u_Numer_Pola - 1) / 3; unsigned uX = (u_Numer_Pola - 1) % 3; if (g_Plansza[uY][uX] == P_PUSTE) g_Plansza[uY][uX] = static_cast<POLE>(g_Aktualny_Gracz); else std::cout << " Jakiś ERRoR przy sprawdzaniu czy pole puste" << std::endl; _getch(); int const LINIE[][3][2] = { { { 0,0 }, { 0,1 }, { 0,2 } }, // górna pozioma { { 1,0 }, { 1,1 }, { 1,2 } },// środ. pozioma { { 2,0 }, { 2,1 }, { 2,2 } },// dolna pozioma { { 0,0 }, { 1,0 }, { 2,0 } }, // lewa pionowa { { 0,1 }, { 1,1 }, { 2,1 } }, // środ. pionowa { { 0,2 }, { 1,2 }, { 2,2 } }, // prawa pionowa { { 0,0 }, { 1,1 }, { 2,2 } }, // p. backslashowa { { 2,0 }, { 1,1 }, { 0,2 } } }; // p. slashowa POLE Pole, ZgodnePole; unsigned uLiczbaZgodnychPol; for (int i = 0; i < 8; ++i) { // i przebiega po kolejnych możliwych liniach (jest ich osiem) // zerujemy zmienne pomocnicze Pole = ZgodnePole = P_PUSTE; // obie zmienne == FLD_EMPTY uLiczbaZgodnychPol = 0; for (int j = 0; j < 3; ++j) { // j przebiega po trzech polach w każdej linii // pobieramy rzeczone pole // to zdecydowanie najbardziej pogmatwane wyrażenie Pole = g_Plansza[LINIE[i][j][0]][LINIE[i][j][1]]; // jeśli sprawdzane pole różne od tego, które ma się zgadzać... if (Pole != ZgodnePole) { // to zmieniamy zgadzane pole na to aktualne ZgodnePole = Pole; uLiczbaZgodnychPol = 1; } else // jeśli natomiast oba pola się zgadzają, no to // inkrementujemy licznik takich zgodnych pól ++uLiczbaZgodnychPol; } // teraz sprawdzamy, czy udało nam się zgodzić linię if (uLiczbaZgodnychPol == 3 && ZgodnePole != P_PUSTE) { // jeżeli tak, no to ustawiamy stan gry na wygraną g_Stan_Gry = S_WYGRANA; // przerywamy pętlę i funkcję return true; } for (int j = 0; j < 3; ++j) { Pole = g_Plansza[LINIE[i][j][0]][LINIE[i][j][1]]; if (Pole != ZgodnePole) { ZgodnePole = Pole; uLiczbaZgodnychPol = 1; } else ++uLiczbaZgodnychPol; } } unsigned uLiczbaZapelnionychPol = 0; for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) if (g_Plansza[i][j] != P_PUSTE) ++uLiczbaZapelnionychPol; if (uLiczbaZapelnionychPol == 3*3) { g_Stan_Gry = S_REMIS; return true; } g_Aktualny_Gracz = (g_Aktualny_Gracz == Z_KOLKO ? Z_KRZYZYK : Z_KOLKO); return true; } bool Rysowanie_Planszy() { if (g_Stan_Gry == S_NIEROZPOCZETA) return false; system ("cls"); std::cout << " KOLKO I KRZYZYK " << std::endl; std::cout << "---------------------" << std::endl; std::cout << std::endl; std::cout << " -----" << std::endl; for (int i = 0; i < 3; ++i) { // lewa część ramki std::cout << " |"; // wiersz for (int j = 0; j < 3; ++j) { if (g_Plansza[i][j] == P_PUSTE) // numer pola std::cout << i * 3 + j + 1; else // tutaj wyświetlamy kółko lub krzyżyk... ale jak? std::cout << static_cast<char>(g_Plansza[i][j]); } // prawa część ramki std::cout << "|" << std::endl; } std::cout << " -----" << std::endl; std::cout << std::endl; switch (g_Stan_Gry) { case S_RUCH: // prośba o następny ruch std::cout << "Podaj numer pola, w ktorym" << std::endl; std::cout << "chcesz postawic "; std::cout << (g_Aktualny_Gracz == Z_KOLKO ? "kolko" : "krzyzyk") << ": "; break; case S_WYGRANA: // informacja o wygranej std::cout << "Wygral gracz stawiajacy "; std::cout << (g_Aktualny_Gracz == Z_KOLKO ? "kolka" : "krzyzyki") << "!"; break; case S_REMIS: // informacja o remisie std::cout << "Remis!"; break; } return true; } Plik z wywołaniem funkcji #include <iostream> #include <conio.h> #include <ctime> #include "game1.h" void main() { Start_Gry(); for (;;) { // ... Rysowanie_Planszy(); if (g_Stan_Gry == S_RUCH) { unsigned u_Numer_Pola; std::cin >> u_Numer_Pola; Ruch (u_Numer_Pola); } else if (g_Stan_Gry == S_WYGRANA || g_Stan_Gry == S_REMIS) break; } _getch(); } Link do komentarza Udostępnij na innych stronach More sharing options...
filuu Napisano Wrzesień 28, 2008 Zgłoś Share Napisano Wrzesień 28, 2008 Daj tego externa w pliku cpp.. nie w nagłówku. Extern służy do odwoływania się do jakiejś zmiennej globalnej zadeklarowanej w innym module (pliku .cpp) - przynajmniej w tym przypadku. Sprawdź czy masz w ogóle zadeklarowaną zmienna ZNAK g_Aktualny_Gracz; bo jeśli nie to externem próbujesz się odwołać do czegoś czego nie ma. Lubię cytryny ! Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Wrzesień 29, 2008 Zgłoś Share Napisano Wrzesień 29, 2008 mam zdeklarowana aha bo z tym extern muwiono mi że musi być w nagłówku zaraz spr i odpisze dzieki ZNAK odnosi się do pliku nagłówkowego enum ZNAK { Z_KOLKO = 'O', Z_KRZYZYK = 'X' }; a tu aktualny gracz w pliku game.cpp // Losowani gracza ktory bedzie 1 srand (static_cast<unsigned>(time(NULL))); g_Aktualny_Gracz = (rand() % 2 == 0 ? Z_KOLKO : Z_KRZYZYK);\ teraz to już mi się wszystko pomieszało hehe a Extern przeniosłem do plików .cpp i wtedy nie wie o istnieniu g_Aktualny_Gracz przypominam jak narazie taki błąd mi wyskakuje ------ Build started: Project: Gra wersja 2, Configuration: Debug Win32 ------ Compiling... mian.cpp Generating Code... Compiling... game.cpp Generating Code... Linking... mian.obj : error LNK2005: "enum ZNAK g_Aktualny_Gracz" (?g_Aktualny_Gracz@@3W4ZNAK@@A) already defined in game.obj mian.obj : error LNK2005: "enum POLE (* g_Plansza)[3]" (?g_Plansza@@3PAY02W4POLE@@A) already defined in game.obj mian.obj : error LNK2005: "enum STAN_GRY g_Stan_Gry" (?g_Stan_Gry@@3W4STAN_GRY@@A) already defined in game.obj Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Wrzesień 29, 2008 Zgłoś Share Napisano Wrzesień 29, 2008 Masz pętle z includami lub nei masz ifndefów w pliku h, stawiam na drugie Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Wrzesień 30, 2008 Zgłoś Share Napisano Wrzesień 30, 2008 hmm a z tymi "ifdefami" jak jest bo nie wiem Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Wrzesień 30, 2008 Zgłoś Share Napisano Wrzesień 30, 2008 #ifndef NAZWA #define NAZWA kod z pliku h #endif jakoś tak Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Wrzesień 30, 2008 Zgłoś Share Napisano Wrzesień 30, 2008 Dzięki za pomoc ale to nadal nie to wciąż te same błędy a zrobiłem jak kazałeś i na parę własnych sposobów to nadal nie to najgorzej bo po prostu nie rozumiem tych Errorów co mi napisał kompilator ( używam VS 2008) Dobra najwyżej tego nigdy nie uruchomię ;P Dzięki! Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Wrzesień 30, 2008 Zgłoś Share Napisano Wrzesień 30, 2008 to wina tego, że dwa razy includujesz to co ma ZNAK itp. i to co zrobiłem powinno działać i basta, pewnie źle zastosowałeś to co napisałem Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Wrzesień 30, 2008 Zgłoś Share Napisano Wrzesień 30, 2008 Co się tak czepiłeś tego ZNAK przecież w Errorze nie wywala info tylko o znaku a cały kod programu masz napisany wyżej i gdzie "includuje" dwa razy ZNAK? Pozatym wszystko zrobiłem dokładnie jak w poradniku kazali juz 5 raz czytam poradnik i mam identycznie nawet odpaliłem kod napisany już przez tego co pisał poradnik i ten sam error Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Wrzesień 30, 2008 Zgłoś Share Napisano Wrzesień 30, 2008 patrz: W game includujesz game1.h, kompilator tworzy dla niego plik obj, potem w main includujesz game1.h i kompilator tworzy dla niego plik obj Następnie linker łączy oba pliku obj i patrzy-zonk w dwóch plikach ma g_Aktualny_Gracz, (* g_Plansza)[3], g_stan_gry no i jest kupa. Pokaż ten poradnik Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Październik 1, 2008 Zgłoś Share Napisano Październik 1, 2008 to jak w takim razie zorbić aby nie było tego zonka a nie pokaże poradnika bo to książka z 2002 r o ile sie nie myle nazywa się C++ Podstawa wydawnictwo Axion Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Październik 1, 2008 Zgłoś Share Napisano Październik 1, 2008 w każdym pliku nagłówkowym *.h na jego początku piszesz: KOD#ifndef NAZWA_TEGO_PLIKU_H #define NAZWA_TEGO_PLIKU_H natomiast na końcu: KOD#endif gdzie NAZWA_TEGO_PLIKU to nazwa pliku nagłówkowego Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Październik 2, 2008 Zgłoś Share Napisano Październik 2, 2008 Powiem tak dziękuje CI za idealną odpowiedź lecz nie napisałeś czy NAZWA_TEGO_PLIKU_H ma być pomiędzy " " a więc sam je dopisalem ale i tak wyskoczył błąd taki : Pisałem też na 2 sposoby ,że bez " " ale wtedy to wogole nie wiedział kompilator co zrobić z sobą ------ Build started: Project: Gra wersja 2, Configuration: Debug Win32 ------ Compiling... game.cpp c:\documents and settings\gelldur\moje dokumenty\visual studio 2008\projects\gra wersja 2\gra wersja 2\game1.h(1) : fatal error C1016: #if[n]def expected an identifier mian.cpp c:\documents and settings\gelldur\moje dokumenty\visual studio 2008\projects\gra wersja 2\gra wersja 2\game1.h(1) : fatal error C1016: #if[n]def expected an identifier Generating Code... Build log was saved at "file://c:\Documents and Settings\Gelldur\Moje dokumenty\Visual Studio 2008\Projects\Gra wersja 2\Gra wersja 2\Debug\BuildLog.htm" Gra wersja 2 - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== #ifndef "game1.h" #define "game1.h" enum ZNAK { Z_KOLKO = 'O', Z_KRZYZYK = 'X' }; enum POLE { P_PUSTE, P_KOLKO = Z_KOLKO, P_KRZYZYK = Z_KRZYZYK }; enum STAN_GRY { S_NIEROZPOCZETA, S_RUCH, S_WYGRANA, S_REMIS }; //Prototypy //Rozpoczecie gry bool Start_Gry(); //wykonywanie ruchu bool Ruch(unsigned); //Rysowanie planszy bool Rysowanie_Planszy(); POLE g_Plansza[3][3] = { { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE } }; ZNAK g_Aktualny_Gracz; STAN_GRY g_Stan_Gry = S_NIEROZPOCZETA; extern STAN_GRY g_Stan_Gry; #endif Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 2, 2008 Zgłoś Share Napisano Październik 2, 2008 xevil mało dokładnie powiedział, zrób zamiast #ifndef "game1.h" #define "game1.h" #ifndef _game1_h_ #define _game1_h_ bo to co ma być po ifndef to musi być jakieś spójne słowo(znaki alfanumerczyne _) bez cudzysłowych, jakiś unikalny identyfikator, a potem ma być po define to samo, przeczytaj o dyrektywach Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Październik 3, 2008 Zgłoś Share Napisano Październik 3, 2008 jak masz podane bez: "" to na jakiego to wstawiasz a widziałeś tam w mojej odpowiedzi kropki? podałem Ci schemat, wystarczyło podać nazwę swojego pliku i tyle... Jak chcesz wiedzieć coś więcej poszukaj w mądrych książkach bądź na necie. Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Październik 4, 2008 Zgłoś Share Napisano Październik 4, 2008 No dobra schemat anpisałeś ale ja dopiero zaczynam c++ i nie widziałem czegos takiego jak nazwa_nazwa_costam ale już próbuje A co do mądrych ksążek robie kursy różne na C++ ale w mojej ksążce ten kod co iałem powinien działać a nie działa nie wiem czemu. Wpisałem tak i to ten sam ERROR (i podkreślam różnie kombinowałem z tymi znakami ______ i spacjami nic nie dało ------ Build started: Project: Gra wersja 2, Configuration: Debug Win32 ------ Compiling... game.cpp mian.cpp Generating Code... Linking... mian.obj : error LNK2005: "enum ZNAK g_Aktualny_Gracz" (?g_Aktualny_Gracz@@3W4ZNAK@@A) already defined in game.obj mian.obj : error LNK2005: "enum POLE (* g_Plansza)[3]" (?g_Plansza@@3PAY02W4POLE@@A) already defined in game.obj mian.obj : error LNK2005: "enum STAN_GRY g_Stan_Gry" (?g_Stan_Gry@@3W4STAN_GRY@@A) already defined in game.obj C:\Documents and Settings\Gelldur\Moje dokumenty\Visual Studio 2008\Projects\Gra wersja 2\Debug\Gra wersja 2.exe : fatal error LNK1169: one or more multiply defined symbols found Build log was saved at "file://c:\Documents and Settings\Gelldur\Moje dokumenty\Visual Studio 2008\Projects\Gra wersja 2\Gra wersja 2\Debug\BuildLog.htm" Gra wersja 2 - 4 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== #ifndef _game1_h_ #define _game1_h_ enum ZNAK { Z_KOLKO = 'O', Z_KRZYZYK = 'X' }; enum POLE { P_PUSTE, P_KOLKO = Z_KOLKO, P_KRZYZYK = Z_KRZYZYK }; enum STAN_GRY { S_NIEROZPOCZETA, S_RUCH, S_WYGRANA, S_REMIS }; //Prototypy //Rozpoczecie gry bool Start_Gry(); //wykonywanie ruchu bool Ruch(unsigned); //Rysowanie planszy bool Rysowanie_Planszy(); POLE g_Plansza[3][3] = { { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE }, { P_PUSTE, P_PUSTE, P_PUSTE } }; ZNAK g_Aktualny_Gracz; STAN_GRY g_Stan_Gry = S_NIEROZPOCZETA; extern STAN_GRY g_Stan_Gry; #endif Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 4, 2008 Zgłoś Share Napisano Październik 4, 2008 w pliku game1.h includuj to co w game1.cpp, w game1.cpp powinno być tylko includowanie game1.h, w ogóle o czemu g_Stan_Gry jest extern? bo je w pliku main.cpp? nie może być extern, extern sie używa gdy jakaś zmienna jest w innym pliku h, a nie cpp, przecież main icluduje game1.h więc będzie miał dostęp do tej zmiennej Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.