mg_mahyar
دوشنبه 21 اردیبهشت 1388, 13:37 عصر
از سایت nehe.gamdev.net و codesampler.com میتونی مثالها رو بر داری. تو اون سایت مثالهای زیادی هستش. هر ارروی داخل ویژوال استادیو یک کد خطا و یک توضیح داره اگه اونها رو بذاری میتونیم بگیم مشکل از کجاست
آقا مشکل اینه که خطا نمیده. ولی کامپایل هم نمیکنه. هر چی نوشته من میزارم. تنها فرقی که این ارورو رو میده اضافه کردن هدر فایل math.h هست به برنامه همین و بس
1>------ Rebuild All started: Project: graphic1, Configuration: Debug Win32 ------
1>Deleting intermediate and output files for project 'graphic1', configuration 'Debug|Win32'
1>Compiling...
1>Graphic 1 project_half.cc
1>d:\samples\graphic 1 project_half.cc(7) : error C2365: 'y0' : redefinition; previous definition was 'function'
1> c:\program files\microsoft visual studio 8\vc\include\math.h(459) : see declaration of 'y0'
1>d:\samples\graphic 1 project_half.cc(7) : error C2365: 'y1' : redefinition; previous definition was 'function'
1> c:\program files\microsoft visual studio 8\vc\include\math.h(460) : see declaration of 'y1'
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(38) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(38) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(39) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(39) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(40) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(40) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(41) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(41) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(48) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(48) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(51) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(60) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'double (__cdecl *)(double)' (or there is no acceptable conversion)
1> c:\program files\microsoft visual studio 8\vc\include\istream(1137): could be 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1139): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1141): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1143): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(155): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(161): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(168): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(175): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(194): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(228): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(247): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(273): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(291): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(309): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(329): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(348): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(367): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(386): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(404): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(422): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(441): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> while trying to match the argument list '(std::istream, double (__cdecl *)(double))'
1>d:\samples\graphic 1 project_half.cc(62) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'double (__cdecl *)(double)' (or there is no acceptable conversion)
1> c:\program files\microsoft visual studio 8\vc\include\istream(1137): could be 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1139): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1141): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1143): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(155): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(161): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(168): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(175): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(194): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(228): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(247): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(273): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(291): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(309): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(329): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(348): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(367): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(386): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(404): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(422): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(441): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> while trying to match the argument list '(std::istream, double (__cdecl *)(double))'
1>Build log was saved at "file://d:\Projects vs2005\graphic1\graphic1\Debug\BuildLog.htm"
1>graphic1 - 19 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
mg_mahyar
دوشنبه 21 اردیبهشت 1388, 23:05 عصر
سلام
پارامترهایی رو که بستور glVertex میفرستی باید به صورت 0.1f باشند یعنی همراهشون f باشه. به جای include کردن math.h از
#include <cmath>
استفاده کن.
اول برنانت کد زیر رو اضافه کن
#pragma comment(lib,"opengl32.lib")
#pragma comment (lib."glut32.lib")
اینم نمونه کدهای nehe:
http://nehe.gamedev.net/lesson.asp?index=02
پایین هر مثال nehe لینک دانلود برای کامپایلرها و محیطها مختلف گداشته شده که حتی تو یکسری از مثالها لینک vb هم وجود داره.
اگه به ارورها نگاه کنی. فکر کنم شما تنها با هدرها مشکل دارین. معمولا این مشکل بر میگرده به نحوه ایجاد پروژه که فایل زیر میتونه کمکتون کنه:
http://comtabriz.blogfa.com/post-3.aspx
من تغیرات رو دادم ولی بازم همون ارور رو دارم:
include <windows.h>
#include <iostream>
#include <GL/glut.h>
#include <cmath>
using namespace std;
#pragma comment(lib,"opengl32.lib")
#pragma comment (lib."glut32.lib")
int m_draw;float r;
float x0,x1,y0,y1;
if (m_draw==2)//circle
{int d;r=sqrtf((x1*x1)+(y1*y1));
int x=0,y=r;
d=3-(2*r);
while(x<=y)
{glBegin(GL_POINTS);
glVertex2i(x0+x,y0+y);glVertex2i(x0+y,y0+x);
glVertex2i(x0-x,y0+y);glVertex2i(x0+y,y0-x);
glVertex2i(x0-x,y0-y);glVertex2i(x0-y,y0-x);
glVertex2i(x0+x,y0-y);glVertex2i(x0-y,y0+x);
glEnd();
if (d<0){d+=(4*x)+6;}
else {d+=(4*(x-y))+10;y-=1;}x++;}
}
دارم خل میشم. این تیکه ارور برنامه هست با اضافه کردن همون هدر فایل و تابع جزر پرفتن از اون:گیج:
یه مطلبی در مورد پزاشتن حرف f گفتید. برای متغیر ها هم بزارم یعنی x0+x به x0+xf تبدیل کنم؟ یا فقط برای عدد ها؟
pswin.pooya
سه شنبه 22 اردیبهشت 1388, 00:42 صبح
یه دونه از ایرادات استفاده کردن از دستور glVertexi به جای دستور glVertexf هستش. اگر از مقادیر اعشاری استفاده می کنی باید از دستور glVertex2f استفاده کنی.
#pragma cooment رو هم جدا بنویس. و همینطور using namespace
در مورد f هم فقط عددها ، البته توی ویژوال استادیو ضروری نیستش:
glVertex2f(0.5f,0.2f);
راستی رنگ رو هم تعیین کن و گرنه هیچ چیزی نمی بینی مثلا رنگ زرد:
glColor3f(1,1,0);
mg_mahyar
چهارشنبه 23 اردیبهشت 1388, 16:42 عصر
یه دونه از ایرادات استفاده کردن از دستور glVertexi به جای دستور glVertexf هستش. اگر از مقادیر اعشاری استفاده می کنی باید از دستور glVertex2f استفاده کنی.
#pragma cooment رو هم جدا بنویس. و همینطور using namespace
در مورد f هم فقط عددها ، البته توی ویژوال استادیو ضروری نیستش:
glVertex2f(0.5f,0.2f);
راستی رنگ رو هم تعیین کن و گرنه هیچ چیزی نمی بینی مثلا رنگ زرد:
glColor3f(1,1,0);
رنپ تعیین شده
مقادیرم صحیح است. نه اعشاری که نیاز به f باشه.
کلا برنامه درست کار میکنه مشک از وقتی میشه هدر فایل اضافه میکنم
#pragma cooment
دقیقا چی کار میکنه؟
اینو بگار نبردم
pswin.pooya
پنج شنبه 24 اردیبهشت 1388, 19:27 عصر
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glut32.lib")
#pragma comment (lib,"glu32.lib")
من این شکلی استفاده میکنم اگه بازم ارور بده دیگه نمی دونم باید چی کار کرد. لیست دقیق ارورها رو نگاه کن. اگه ارورها مربوط به لینکر باشن که یا تو برنامه خطا داری و یا اینکه dll ها و فایلهای lib رو درست کپی نکردی و اگر به غیر از این باشه یعنی اینکه تو برنامه نویسی مشکل داشتی
mg_mahyar
پنج شنبه 24 اردیبهشت 1388, 22:46 عصر
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glut32.lib")
#pragma comment (lib,"glu32.lib")
من این شکلی استفاده میکنم اگه بازم ارور بده دیگه نمی دونم باید چی کار کرد. لیست دقیق ارورها رو نگاه کن. اگه ارورها مربوط به لینکر باشن که یا تو برنامه خطا داری و یا اینکه dll ها و فایلهای lib رو درست کپی نکردی و اگر به غیر از این باشه یعنی اینکه تو برنامه نویسی مشکل داشتی
اخه فکر کنم مشکل پیدا شد.
من کتابخونه
math رو میخوام اضافه کنم ایراد میگیره. اینا که بالا دادی درستن
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.