Ĺadny brzuch
Witam:)
Jak nie ciężko się domyśleć mam problem :D Szukałem odpowiedzi na forum dość długo, ale nie znalazłem nic co potrafiło rozwiązać mój problem (być może dlatego nie znalazłem, bo strasznie dużo czasu pochłania dokładne szukanie, a ja nie mam go za dużo... jak każdy)
Nie zaliczam się do dobrych programistów (prędzej do tych gorszych :P) i nagle zachciało mi się OpenGL’a. Kiedy przyszło mi napisać pierwszy programik (heh typu “Hello World”) zawiódł mnie kompilator (był to “Dev-C++”)... Byłem trochę zszokowany, ale pierwsze co to zacząłem sprawdzać inne programy, które miałem lub ściągnąłem. W sumie było ich 3 i żaden się nie spisał. Poniżej podałem wykaz co mi pokazywały poszczególne programy:
Dev-C++ - 3 błędy - In file included from C:/Program Files/Borland/CBuilder6/Projects/test.cpp, C:\DEV-CPP\include\gl\glut.h redeclaration of C++ built-in type ` wchar_t', C:\Program Files\Borland\CBuilder6\Projects\test.cpp `main' must return `int'
Heh nie wiem czego on chce od glut.h... a co do typu main, że ma być int, a nie void wydaje mi się dziwne...
C++Builder 6 – tu nie było błędów... ale po z kompilowaniu nic mi się na ekranie nie pokazało, a program sam zakończył działanie... i się zamknął :P
C++BuilderX – ten program to mi się ciekawie włącza :P wczytuję się 3min, później pokazuję jakieś okienko, zaraz je zamyka i kończy swoje działanie :P
Cóż... może nie mam talentu do takich spraw :P i nie potrafię poprawnie obchodzić się z programami... Albo mam za słabego kompa by móc korzystać z tych programów... (ale Delphi 7 mi działa dobrze). Liczę na jakąś radę, albo propozycję pobrania jakiegoś jeszcze innego programu do kompilacji.
Dadaje jeszcze kod źródłowy tej małej aplikacji, która przystworzyła mi tyle problemów.
#include <gl/gl.h> #include <gl/glut.h> void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glFlush(); } void SetupRC(void) { glClearColor(0.0f, 0.0f, 1.0f, 1.0f); } void main(void) { glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); glutCreateWindow("Simple"); glutDisplayFunc(RenderScene); SetupRC(); glutMainLoop(); }
(Może, ktoś kojarzy ten plik z jakiegoś poradnika :P)
Z góry dzięki za każdą pomoc
PS: Rety! Ale się rozpisałem :D, kto będzie chciał to czytać :)
Zgodnie ze standardem ISO main powinien być typu int i zwracac kod 0 w przypadku powodzenia dzialania.
zmien void main, na int main i jest oki (w c++ nie trzeba nawet na koncu dac return 0, ale lepiej dać:D)
Zgodnie ze standardem ISO main powinien być typu int i zwracac kod 0 w przypadku powodzenia dzialania.
zmien void main, na int main i jest oki (w c++ nie trzeba nawet na koncu dac return 0, ale lepiej dać:D)
Masa błędów!!!
Po pierwsze parametry funkcji głównej(main) to coś co nigdy nie powinno zaistnieć. Nie wiem czy funkcja main może być funkcją, która nic nie zwraca czyli void, ale jeśli może to co oznacz void w parametrach?
int main(...){
/*
Jakiś tam kod
*/
return 0;
Exit(EXIT_SUCCESS);
}
Jeśli ten kod nie działa to dokładnie spójrz na kod w Ekspercie o OpenGL i przyjrzyj się budowie funkcji main! :excl:
Użytkownik Triko2 edytował ten post 23 maj 2005, 10:58
Masa błędów!!!
Po pierwsze parametry funkcji głównej(main) to coś co nigdy nie powinno zaistnieć. Nie wiem czy funkcja main może być funkcją, która nic nie zwraca czyli void, ale jeśli może to co oznacz void w parametrach?
int main(...){
/*
Jakiś tam kod
*/
return 0;
Exit(EXIT_SUCCESS);
}
Jeśli ten kod nie działa to dokładnie spójrz na kod w Ekspercie o OpenGL i przyjrzyj się budowie funkcji main! :excl:
Odradzam DevC++. Program, który w każdym kompilatorze działa OK, nie działa w Devie. Np. Dev zamiast "int main();" standardowo tworzy
"int main(masa_kodu);". W jednej (chyba dobrej, bo ma kilkaset stron - autor Lippman, taka jasnobrązowa okładka z pandą) książce czytałem nawet, że "int" przy main jest niepotrzebne w C++, ale nie sprawdzałem.
Ekhemm. Ja korzystam z Dev i nigdy mnie nie zawiódł :huh: A:
int main(int argc, char *argv[])
to dla ciebie masa kodu. Odpuśc sobie programowanie...
Ekhemm. Ja korzystam z Dev i nigdy mnie nie zawiódł :huh: A:
int main(int argc, char *argv[])
to dla ciebie masa kodu. Odpuśc sobie programowanie...
1. wcale tego kodu musi nie być
2. int jest w sepecyfikacji więc dobrze ze sie rzuca
3. system("PAUSE") - nie jest konieczne, to tylko wyświetla "Press any key to contiune ..." i oczekuje na wciśnięcie klawisza
4. po return 0, exit(EXIT_SUCCESS) - po co ? - przeciez ten kod i tak nie zostanie wykonany
;)
No cóż... W sumie to do żadnej rady się nie dostosowałem... ale po przeczytaniu ich dały mi trochę do myślenia... (ten kod przepisywałem bezmyślnie :P)Faktycznie te przepisywanie było trochę głupie, po krótkich rozważaniach nieco zmodyfikowałem kod i zajrzałem do tego co ekspert pisał o działaniu openGL w C++Builder6. No i po próbie kompilacji pokazał mi się całkiem nowy błąd:
[C++ Error] glu.h(64): E2141 Declaration syntax error
Po wyświetleniu tego błędu pokazał mi tak oto wyglądającą linię kody, która (wg. Kompilatora) nie do końca działa poprawnie:
const wchar_t* APIENTRY gluErrorUnicodeStringEXT (
GLenum errCode);
No i jak to ja miałem już trochę tego dość i wziąłem i wywaliłem w kosmos ten test :D
A co się później okazało? Po kompilacji wszystko zadziałało tak jak powinno :D
Może i mam trochę radykalne podejście do sprawy, ale działa :D
Prosił bym o jakieś skomentowanie tego co zrobiłem :D. Bo sądzę że wycinanie teksty z biblioteki glu.h nie jest dobrym rozwiązaniem, a pozostawienie takiej luki może później przynieść dużo problemu...
No cóż... W sumie to do żadnej rady się nie dostosowałem... ale po przeczytaniu ich dały mi trochę do myślenia... (ten kod przepisywałem bezmyślnie :P)Faktycznie te przepisywanie było trochę głupie, po krótkich rozważaniach nieco zmodyfikowałem kod i zajrzałem do tego co ekspert pisał o działaniu openGL w C++Builder6. No i po próbie kompilacji pokazał mi się całkiem nowy błąd:
[C++ Error] glu.h(64): E2141 Declaration syntax error
Po wyświetleniu tego błędu pokazał mi tak oto wyglądającą linię kody, która (wg. Kompilatora) nie do końca działa poprawnie:
const wchar_t* APIENTRY gluErrorUnicodeStringEXT (
GLenum errCode);
No i jak to ja miałem już trochę tego dość i wziąłem i wywaliłem w kosmos ten test :D
A co się później okazało? Po kompilacji wszystko zadziałało tak jak powinno :D
Może i mam trochę radykalne podejście do sprawy, ale działa :D
Prosił bym o jakieś skomentowanie tego co zrobiłem :D. Bo sądzę że wycinanie teksty z biblioteki glu.h nie jest dobrym rozwiązaniem, a pozostawienie takiej luki może później przynieść dużo problemu...
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Jak nie ciężko się domyśleć mam problem :D Szukałem odpowiedzi na forum dość długo, ale nie znalazłem nic co potrafiło rozwiązać mój problem (być może dlatego nie znalazłem, bo strasznie dużo czasu pochłania dokładne szukanie, a ja nie mam go za dużo... jak każdy)
Nie zaliczam się do dobrych programistów (prędzej do tych gorszych :P) i nagle zachciało mi się OpenGL’a. Kiedy przyszło mi napisać pierwszy programik (heh typu “Hello World”) zawiódł mnie kompilator (był to “Dev-C++”)... Byłem trochę zszokowany, ale pierwsze co to zacząłem sprawdzać inne programy, które miałem lub ściągnąłem. W sumie było ich 3 i żaden się nie spisał. Poniżej podałem wykaz co mi pokazywały poszczególne programy:
Dev-C++ - 3 błędy - In file included from C:/Program Files/Borland/CBuilder6/Projects/test.cpp, C:\DEV-CPP\include\gl\glut.h redeclaration of C++ built-in type ` wchar_t', C:\Program Files\Borland\CBuilder6\Projects\test.cpp `main' must return `int'
Heh nie wiem czego on chce od glut.h... a co do typu main, że ma być int, a nie void wydaje mi się dziwne...
C++Builder 6 – tu nie było błędów... ale po z kompilowaniu nic mi się na ekranie nie pokazało, a program sam zakończył działanie... i się zamknął :P
C++BuilderX – ten program to mi się ciekawie włącza :P wczytuję się 3min, później pokazuję jakieś okienko, zaraz je zamyka i kończy swoje działanie :P
Cóż... może nie mam talentu do takich spraw :P i nie potrafię poprawnie obchodzić się z programami... Albo mam za słabego kompa by móc korzystać z tych programów... (ale Delphi 7 mi działa dobrze). Liczę na jakąś radę, albo propozycję pobrania jakiegoś jeszcze innego programu do kompilacji.
Dadaje jeszcze kod źródłowy tej małej aplikacji, która przystworzyła mi tyle problemów.
#include <gl/gl.h> #include <gl/glut.h> void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glFlush(); } void SetupRC(void) { glClearColor(0.0f, 0.0f, 1.0f, 1.0f); } void main(void) { glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); glutCreateWindow("Simple"); glutDisplayFunc(RenderScene); SetupRC(); glutMainLoop(); }
(Może, ktoś kojarzy ten plik z jakiegoś poradnika :P)
Z góry dzięki za każdą pomoc
PS: Rety! Ale się rozpisałem :D, kto będzie chciał to czytać :)
Zgodnie ze standardem ISO main powinien być typu int i zwracac kod 0 w przypadku powodzenia dzialania.
zmien void main, na int main i jest oki (w c++ nie trzeba nawet na koncu dac return 0, ale lepiej dać:D)
Zgodnie ze standardem ISO main powinien być typu int i zwracac kod 0 w przypadku powodzenia dzialania.
zmien void main, na int main i jest oki (w c++ nie trzeba nawet na koncu dac return 0, ale lepiej dać:D)

Masa błędów!!!
Po pierwsze parametry funkcji głównej(main) to coś co nigdy nie powinno zaistnieć. Nie wiem czy funkcja main może być funkcją, która nic nie zwraca czyli void, ale jeśli może to co oznacz void w parametrach?
int main(...){
/*
Jakiś tam kod
*/
return 0;
Exit(EXIT_SUCCESS);
}
Jeśli ten kod nie działa to dokładnie spójrz na kod w Ekspercie o OpenGL i przyjrzyj się budowie funkcji main! :excl:
Użytkownik Triko2 edytował ten post 23 maj 2005, 10:58
Masa błędów!!!
Po pierwsze parametry funkcji głównej(main) to coś co nigdy nie powinno zaistnieć. Nie wiem czy funkcja main może być funkcją, która nic nie zwraca czyli void, ale jeśli może to co oznacz void w parametrach?
int main(...){
/*
Jakiś tam kod
*/
return 0;
Exit(EXIT_SUCCESS);
}
Jeśli ten kod nie działa to dokładnie spójrz na kod w Ekspercie o OpenGL i przyjrzyj się budowie funkcji main! :excl:

Odradzam DevC++. Program, który w każdym kompilatorze działa OK, nie działa w Devie. Np. Dev zamiast "int main();" standardowo tworzy
"int main(masa_kodu);". W jednej (chyba dobrej, bo ma kilkaset stron - autor Lippman, taka jasnobrązowa okładka z pandą) książce czytałem nawet, że "int" przy main jest niepotrzebne w C++, ale nie sprawdzałem.
Ekhemm. Ja korzystam z Dev i nigdy mnie nie zawiódł :huh: A:
int main(int argc, char *argv[])
to dla ciebie masa kodu. Odpuśc sobie programowanie...
Ekhemm. Ja korzystam z Dev i nigdy mnie nie zawiódł :huh: A:
int main(int argc, char *argv[])
to dla ciebie masa kodu. Odpuśc sobie programowanie...

1. wcale tego kodu musi nie być
2. int jest w sepecyfikacji więc dobrze ze sie rzuca
3. system("PAUSE") - nie jest konieczne, to tylko wyświetla "Press any key to contiune ..." i oczekuje na wciśnięcie klawisza
4. po return 0, exit(EXIT_SUCCESS) - po co ? - przeciez ten kod i tak nie zostanie wykonany
;)

No cóż... W sumie to do żadnej rady się nie dostosowałem... ale po przeczytaniu ich dały mi trochę do myślenia... (ten kod przepisywałem bezmyślnie :P)Faktycznie te przepisywanie było trochę głupie, po krótkich rozważaniach nieco zmodyfikowałem kod i zajrzałem do tego co ekspert pisał o działaniu openGL w C++Builder6. No i po próbie kompilacji pokazał mi się całkiem nowy błąd:
[C++ Error] glu.h(64): E2141 Declaration syntax error
Po wyświetleniu tego błędu pokazał mi tak oto wyglądającą linię kody, która (wg. Kompilatora) nie do końca działa poprawnie:
const wchar_t* APIENTRY gluErrorUnicodeStringEXT (
GLenum errCode);
No i jak to ja miałem już trochę tego dość i wziąłem i wywaliłem w kosmos ten test :D
A co się później okazało? Po kompilacji wszystko zadziałało tak jak powinno :D
Może i mam trochę radykalne podejście do sprawy, ale działa :D
Prosił bym o jakieś skomentowanie tego co zrobiłem :D. Bo sądzę że wycinanie teksty z biblioteki glu.h nie jest dobrym rozwiązaniem, a pozostawienie takiej luki może później przynieść dużo problemu...
No cóż... W sumie to do żadnej rady się nie dostosowałem... ale po przeczytaniu ich dały mi trochę do myślenia... (ten kod przepisywałem bezmyślnie :P)Faktycznie te przepisywanie było trochę głupie, po krótkich rozważaniach nieco zmodyfikowałem kod i zajrzałem do tego co ekspert pisał o działaniu openGL w C++Builder6. No i po próbie kompilacji pokazał mi się całkiem nowy błąd:
[C++ Error] glu.h(64): E2141 Declaration syntax error
Po wyświetleniu tego błędu pokazał mi tak oto wyglądającą linię kody, która (wg. Kompilatora) nie do końca działa poprawnie:
const wchar_t* APIENTRY gluErrorUnicodeStringEXT (
GLenum errCode);
No i jak to ja miałem już trochę tego dość i wziąłem i wywaliłem w kosmos ten test :D
A co się później okazało? Po kompilacji wszystko zadziałało tak jak powinno :D
Może i mam trochę radykalne podejście do sprawy, ale działa :D
Prosił bym o jakieś skomentowanie tego co zrobiłem :D. Bo sądzę że wycinanie teksty z biblioteki glu.h nie jest dobrym rozwiązaniem, a pozostawienie takiej luki może później przynieść dużo problemu...
