السلام عليكم ..
عند تنفيذ بعض برامج ال opengl يظهر الخطأ التالي ..
علما ان برامج الاستاذ الشمري تتنفذ حسب الاصول ، بس مثلا البرامج الموجودة في كتاب ال opengl لا تتنفذ
error LNK2001 : unresolved external symbol - winmain@16
السلام عليكم ..
عند تنفيذ بعض برامج ال opengl يظهر الخطأ التالي ..
علما ان برامج الاستاذ الشمري تتنفذ حسب الاصول ، بس مثلا البرامج الموجودة في كتاب ال opengl لا تتنفذ
error LNK2001 : unresolved external symbol - winmain@16
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
هذا يحدث لانك تختار مشروع console وتطبيقك هو win32 .. او العكس .
يعني لنفرض أنك تعمل تطبيق يعتمد على مكتبة glut .. بمعنى أنك تستخدم الدالة main ,,
عندها لا بد ان تختار مشروع من نوع console ,,
اذا كنت تعمل على الفيجوال سي . اتبع الاتي :
من القائمة :
FILE
NEW
يأتيك مربع حوار : اختر منه :
win32 console ..
أما اذا كنت تعمل على الWIN API ..
اي ان الدالة الرئيسية هي WINAPI WinMain ..
فاختر
file
new
win32 application
=========
وبلاش كلمة استاذ .. الى الان طالب : ) ’’
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
جزاك الله خيرا اخي على الرد ..
اقتباس(((يعني لنفرض أنك تعمل تطبيق يعتمد على مكتبة glut .. بمعنى أنك تستخدم الدالة main ,,
عندها لا بد ان تختار مشروع من نوع console )))
هذا شرط ؟؟
طب كيف ؟؟
هل معنى هذا ان الWIN API افضل ؟؟ ..
ولو راح اثقل عليك .. بس ممكن اسأل سؤال ثاني :(
ظهر لي الخطأ التالي عند تنفيذ البرامج المكتوبة في كتاب المهندسة دانيا .. تحديدا سؤال DDA
: fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
و عندما حذفت هذه الجملة
#include “stdafx.h”
ظهرت لي الاخطاء التالية :
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\GL/gl.h(1152) : error C2144: syntax error : missing ';' before type 'void' C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\GL/gl.h(1152) : error C2501: 'WINGDIAPI' : missing storage-class or type specifiers C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\GL/gl.h(1152) : fatal error C1004: unexpected end of file found
اسف على كثرة الاسئلة ، وبارك الله فيك ونفع الله بك الامة .
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
احذف stdafx.h , stdafx.cpp ..
واذهب .. الى الملف الرئيسي اللي تكتب فيه تطبيقك .. واستدعي ..
#include"GL/gl.h" #include"GL/glu.h" #include"GL/glaux.h"
...
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
شكرا على التوضيح ..
سأحاول بما قلت ..
اخشى اني بدأت اثقل عليك و على بقية الاعضاء بكثرة الاسئلة ..
جزاكم الله خير الجزاء وزادكم من علمه ..
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
السلام عليكم ..
و الله يا أخي ما في فايدة ..
والله عقدني هذا الخطأ
تصور حذفت البرنامج كلة وما في فايدة .. نفس الخطأ يظهر لي ..
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\GL/gl.h(1152) : error C2144: syntax error : missing ';' before type 'void' C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\GL/gl.h(1152) : error C2501: 'WINGDIAPI' : missing storage-class or type specifiers C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\GL/gl.h(1152) : fatal error C1004: unexpected end of file found
طاعا انا ظايف المكتبات و حسب الاصول
وعندما اضغط على احد هذه الاعضاء .. يظهر لي التعاريف الاساسية في الفيجوال
WINGDIAPI void APIENTRY glAccum (GLenum op, GLfloat value); WINGDIAPI void APIENTRY glAlphaFunc (GLenum func, GLclampf ref); WINGDIAPI GLboolean APIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); WINGDIAPI void APIENTRY glArrayElement (GLint i); WINGDIAPI void APIENTRY glBegin (GLenum mode); WINGDIAPI void APIENTRY glBindTexture (GLenum target, GLuint texture);
ويكون سهم الاشارة الى الخطأ على السطر الاول ..
اخي ممكن أكلفك بشغلة .. لله ..
ليش ما تقم بتنفيذ البرنامج لديك (موجود في كتاب المهندسة دانيا .. DDA ، والكتاب موجود في المنتدى ) .. و شوف يتنفذ البرنامج لديك .. اذا عندك وقت .. وما في مضايقة لك ..
و هذا هو البرنامج كما هو موجود في الكتاب
#include "stdafx.h"
#include <GL/gl.h>
#include <GL/glut.h>
void lineDDA ()
{
glColor3f (1.0, 1.0, 1.0);
int xa, int ya, int xb, int yb;
xa = 0؛ ya = 0؛ xb = 50؛ yb = 50;
int dx = xb - xa, dy = yb – ya;
int steps, k;
float xIncr, yIncr, x = xa, y = ya;
if (abs(dx)>abs(dy))
steps = abs(dx);
else
steps = abs(dy);
xIncr = dx / (float) steps;
yIncr = dy / (float) steps;
glBegin(GL_POINTS);
glVertex2i (x, y);//as drawPixel (ROUND(x), ROUND(y))
for (k=0; k<steps; k++)
{
x += xIncr;
y += yIncr;
glVertex2i (x, y);//as drawPixel (ROUND(x), ROUND(y))
}
glEnd();
glFlush();
}
void init(void)
{
*/ select clearing (background) color /*
glClearColor (0.0, 0.0, 0.0, 0.0 );
glClear (GL_COLOR_BUFFER_BIT );
/ * initialize viewing values /*
glMatrixMode(GL_PROJECTION);
; () glLoadIdentity
glOrtho(0.0, 100, 0.0, 100, -1.0, 1.0);
}
void main(int argc, char** argv)
{
glutInit(&argc, argv );
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (100, 100);
glutCreateWindow ("lineDDA");
init();
glutDisplayFunc(lineDDA);
glutMainLoop();
}المشكلة ان هذا الخطأ ليس في برنامج واحد (يعني من الكتاب بس برنامج واحد تنفذ عندي !)
جزاك الله خيرا
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
احذف
#include "stdafx.h" #include <GL/gl.h>
لان المكتبة glutتستدعي الملفات التي تحتاجها ..
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
نفس المشكلة كانت تحصل لي قبل تركي للـ OpenGL ؛ حليت هذه المشكلة ... عـن طريق إضافة المكتبة windows.h قبل أن أضيف أي مكتبة أخرى ........ هذا الكلام على الكونسول طبعاً .... جرب ما فعلت فمن الممكن أن يحل لك مشكلتك
السلام عليكم
مشكورين اخواني
تنفذت البرامج بعد التغيير
جزاكم الله خيرا
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
هذا الموضوع مغلق.