Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 23:51   #1
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
Печаль DiretX графика. Инициализация. Как исправить ошибку?

Провел целый день перед монитором, искал информацию по этому поводу. Не выдержал и написал сюда. Надеюсь поможете.
Начал я читать книгу "DiretX и С++. Искусство программирования.".
Решил для начала скачать исходник, инициализирующий DiretX окно. Сделал все как написано:
1. Установил SDK, и скопировал все lib и include, в соответствующие папки MSVC 2010 Express;
2. Создал проект "Приложение Win32";
3. Создал в проекте файл, скопировал туда тот исходник.
4. Прописал в свойствах проекта
d3dx9.lib
d3d9.lib
5. Подключил заголовочный файл d3d9.h

Выдает ошибки:

Код:
1>init.obj : error LNK2019: ссылка на неразрешенный внешний символ _Direct3DCreate9@4
  в функции "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z)

1>D:\DiretX\Инициализация\Debug\Инициализация.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
Исходник лежит в архиве (там весь проект). Пожалуйста, не пишите предположений. Посмотрите проект.

Вложение 41553

P.S. Так же создавал такой же проект в MSVC 2008. Там тоже самое.

Последний раз редактировалось Beermonza; 04.08.2011 в 15:08.
Ibanez Wizard вне форума Ответить с цитированием
Старый 04.08.2011, 12:41   #2
какtus
Пользователь
 
Аватар для какtus
 
Регистрация: 02.04.2011
Сообщений: 56
По умолчанию

Цитата:
4. Прописал в свойствах проекта
d3dx9.lib
d3d9.lib
Ты должен прописать полный путь к этим файлам.
Например у меня так:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\DirectX\d3dx 9.lib
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\DirectX\d3d9 .lib
И еще: для преобразования в LPCWSTR используй TEXT("строка") или L"строка" иначе у тебя всякие квадратики будут отображаться.

P.S. Я бы посоветовал начать с книги "Введение в программирование 3D игр" Франк Луна.

Последний раз редактировалось какtus; 04.08.2011 в 12:54.
какtus вне форума Ответить с цитированием
Старый 04.08.2011, 18:37   #3
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Код:
#pragma comment( lib, "d3d9.lib")
#pragma comment( lib, "winmm.lib")
Надо добавить !
An1ka вне форума Ответить с цитированием
Старый 04.08.2011, 18:51   #4
какtus
Пользователь
 
Аватар для какtus
 
Регистрация: 02.04.2011
Сообщений: 56
По умолчанию

An1ka,
а у меня твой способ не работает(потому что все DirectX библиотеки у меня хранятся в другой папке), хотя он тоже верный.
какtus вне форума Ответить с цитированием
Старый 08.08.2011, 17:47   #5
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от какtus Посмотреть сообщение
An1ka,
а у меня твой способ не работает(потому что все DirectX библиотеки у меня хранятся в другой папке), хотя он тоже верный.
Просто в свойствах проекта нужно прописать каталоги для lib.
An1ka вне форума Ответить с цитированием
Старый 12.08.2011, 00:23   #6
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от An1ka Посмотреть сообщение
Код:
#pragma comment( lib, "d3d9.lib")
#pragma comment( lib, "winmm.lib")
Надо добавить !
У меня и без этого работает.
Ibanez Wizard вне форума Ответить с цитированием
Старый 12.08.2011, 00:43   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если в настройках проекта прописал, то там не обязательно.

я лично изза привычки к gcc от этого отвык.(к прагме)

вообще An1ka, ТС же написал что добавил в настройки проекта их.

кстати а проблема то решена?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.08.2011, 01:01   #8
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
если в настройках проекта прописал, то там не обязательно.

я лично изза привычки к gcc от этого отвык.(к прагме)

вообще An1ka, ТС же написал что добавил в настройки проекта их.

кстати а проблема то решена?
Да. Прописал полный путь к файлам библиотек и всё заработало.
Ibanez Wizard вне форума Ответить с цитированием
Старый 12.08.2011, 01:06   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

значит пост номер 2 был решением.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить ошибку yana33311 Паскаль, Turbo Pascal, PascalABC.NET 2 17.04.2011 21:07
выдает ошибку. как исправить? avi-vi Помощь студентам 2 24.12.2010 10:00
Как исправить ошибку? True_girl Помощь студентам 0 19.04.2010 22:47
как исправить ошибку? aiktz Паскаль, Turbo Pascal, PascalABC.NET 3 24.09.2009 18:56