PMG
https://forum.pmg.org.ru/

Проблемы с Уроком 1
https://forum.pmg.org.ru/viewtopic.php?f=1&t=9470
Страница 1 из 1

Автор:  artemiyplus [ 05 ноя 2013 22:02 ]
Заголовок сообщения:  Проблемы с Уроком 1

Здравствуйте. У меня возникает такая проблема, в Visual Studio 2012 загружаю скачанный исходник, выдает ошибки, переписал код сам, выдает другие ошибки. Что делать?
Вот код. http://pastebin.com/L0n3gf4y
Вот ошибки:

Цитата:
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__wglCreateContext@4 в функции "bool __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YA_NPB_WHHH_N@Z)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__wglDeleteContext@4 в функции "void __cdecl KillGLWindow(void)" (?KillGLWindow@@YAXXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__wglMakeCurrent@8 в функции "bool __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YA_NPB_WHHH_N@Z)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClear@4 в функции "int __cdecl DrawGLScene(void)" (?DrawGLScene@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearColor@16 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearDepth@8 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glDepthFunc@4 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnable@4 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glHint@8 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glLoadIdentity@0 в функции "int __cdecl DrawGLScene(void)" (?DrawGLScene@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMatrixMode@4 в функции "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glShadeModel@4 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glViewport@16 в функции "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ _gluPerspective@32 в функции "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z) в функции "bool __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YA_NPB_WHHH_N@Z)
1>C:\Users\Артём\Documents\Visual Studio 2012\Projects\Win32Project5\Debug\Win32Project5.exe : fatal error LNK1120: неразрешенных внешних элементов: 15
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Автор:  TusGlob [ 06 ноя 2013 03:49 ]
Заголовок сообщения:  Re: Проблемы с Уроком 1

У вас не подключены библиотеки Glu32.lib и OpenGL32.lib. Их надо ввести в Свойствах проекта в свойствах конфигурации->компоновщик->ввод->дополнительные зависимости.
Вообще исходные коды лучше брать в оригинале на http://nehe.gamedev.net/ (адаптация к Visual C++ MS VS 2010/2012 http://pmg.org.ru/nehe/nehex3.htm, коды и демо на http://pmg.org.ru/nehe/LessonsCode_2010.7z)

Автор:  artemiyplus [ 06 ноя 2013 20:58 ]
Заголовок сообщения:  Re: Проблемы с Уроком 1

TusGlob писал(а):
У вас не подключены библиотеки Glu32.lib и OpenGL32.lib. Их надо ввести в Свойствах проекта в свойствах конфигурации->компоновщик->ввод->дополнительные зависимости.
Вообще исходные коды лучше брать в оригинале на http://nehe.gamedev.net/ (адаптация к Visual C++ MS VS 2010/2012 http://pmg.org.ru/nehe/nehex3.htm, коды и демо на http://pmg.org.ru/nehe/LessonsCode_2010.7z)



всё сделал как вы сказали, теперь мои инклуды выглядят так и к ним прибавилось две прагмы

Код:
#include <windows.h>
#include <gl\gl.h>         
#include <gl\glu.h>         
#include <glaux.h>
#include <glut.h>

#pragma comment (lib, "opengl32.lib")
#pragma comment (lib, "glut32.lib")


и кол-во ошибок уменьшилось, до 1. Я уже пробовал подключить всё что можно, но ошибка остается. :(

Цитата:
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z) в функции "bool __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YA_NPB_WHHH_N@Z)
1>C:\Users\Артём\Documents\Visual Studio 2012\Projects\Win32Project5\Debug\Win32Project5.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Автор:  TusGlob [ 07 ноя 2013 05:43 ]
Заголовок сообщения:  Re: Проблемы с Уроком 1

Очевидно, для MS VS 2010/2012 для прцедуры WindowProc нужны какие-то дополнительные установки. Пока я их не нашел. В предыдущих версиях оно работает.
Чтобы лишнего не париться, можно взять проект LessonsCode_2010/lesson 01/GLSetup из http://pmg.org.ru/nehe/LessonsCode_2010.7z, пояснения на http://pmg.org.ru/nehe/nehex3.htm.

Автор:  MagicWolf [ 07 ноя 2013 12:09 ]
Заголовок сообщения:  Re: Проблемы с Уроком 1

Вначале у вас задан идентификатор - LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
А потом по тексту нет его, только
LRESULT CALLBACK WndProc(HWND LinkWindow,

UINT uMessage,

WPARAM wParam,

LPARAM lParam)
Это скорее всего одно и тоже. Так что замените WndProc на WindowProc... или наоборот...

Автор:  artemiyplus [ 07 ноя 2013 17:09 ]
Заголовок сообщения:  Re: Проблемы с Уроком 1

Спасибо вам обоим, огромное :-) всё заработало, действительно имя функции нужно было поменять :-) впредь буду внимательней.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/