Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с инициализацией Direct3D9, Либы подключены, но классы не определены 
V
    Опции темы
KaraKum
  Дата 22.3.2008, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Доброе время суток.
У меня такая проблема: установил DirectX9, проверил пути к либам и .h-файлам - правильные, подключил к проекту либы: d3d9.lib, d3dx8.lib, winmm.lib.
Создаю переменную типа IDirect3D, но при компнововке выводится ошибка: "Indeclared Identifier", но при наведении мыши послушно появляется подсказка о IDirect3D. А после создания объекта такого класса нужно вызвать функцию Direct3DCreate9(), но она вообще для проекта не определена, а в файле d3d9.h она есть и я пробовал напрямую подключать этот файл к проекту - никакого результата.
Подскажите, пожалуйста, в чём проблема?
PM MAIL WWW   Вверх
Graf_h
Дата 24.3.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: -1
Всего: 5



Привет! так трудно помочь, было бы лудше полностью весь код! Все же ОпенЖЛ best!


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
KaraKum
  Дата 24.3.2008, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Весь код - это стандартное windows - приложение только в конце WinMain() провожу инициализуцию DirectX:
Код

IDirect3D d3d;
d3d = Direct3DCreate9(D3D_SDK_VERSION);

Всё сделал как по книжке - либы подключил, пути к папкам с либами и заголовками указал, но при компиляции возникают ошибки:
c:\Programs\DirectX\Frank_2.1.1\Functions.cpp(31): error C2065: 'd3d' : undeclared identifier
c:\Programs\DirectX\Frank_2.1.1\Functions.cpp(31): error C2065: 'IDirect3D9' : undeclared identifier
Однако при наведении мыши на "IDirect3D" выскакивает подсказка об определении этого типа, а вот функция Direct3DCreate9() вообще не подсвечивается, будто она неизвестна.
Если перейти в определение "IDirect3D", то открывается файл "d3d.h" - пробовал подключать его к проекту - не помогло.
В чём проблема?
PM MAIL WWW   Вверх
Graf_h
Дата 25.3.2008, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: -1
Всего: 5



Ну, если верить тебе что ты все подключил, то не должно быть ошибок! посмотри еще раз пути к хедерам! я думаю проблема именно вних! Если не поможет напиши мне в личку свой мейл, отправлю тебе свой DirektX SDK! там есть примеры, посмотриш!


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
KaraKum
  Дата 25.3.2008, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Цитата

посмотри еще раз пути к хедерам! я думаю проблема именно вних!

Несколько раз пересматривал - пути правильные. Пробовал даже в папку с проектом закидывать и с кавычками хедер дополнительно подключать - не помногло. Пробовал вручную DLL-ки в system32 скопировать - такие там уже есть.

Цитата

отправлю тебе свой DirektX SDK! там есть примеры, посмотриш!

Он же 400 метров весит! Это же 600 руб. траффика!  smile  smile 
А так у меня вроде полноценный DXSDK - со всеми примерами (про тонко-толстую тётку  smile , про чайник посреди улицы, про какой-то сад с непонятными созданиями в нём, который 200 метров оперативки требует и так далее), со всеми справками, где, кстати, есть и IDirect3D9 и Direct3DCreate9()...

P.S.: А насчёт OpenGL, то я его не брошу  smile , нравится мне кроссплатформенность, только жаль, что с помощью GLUT нельзя узнать, что пользователь отпусил какую-то кнопку на клаве, а можно только узнать какую он нажал, а без этого не сделать игру в реальном времени, а только основанную на сообщениях  smile .
Просто где-то требуется OpenGL, а где-то DirectX знать, чтобы в коллектив вписаться.

Это сообщение отредактировал(а) KaraKum - 25.3.2008, 11:04
PM MAIL WWW   Вверх
Graf_h
Дата 25.3.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: -1
Всего: 5



Цитата(KaraKum @  25.3.2008,  11:03 Найти цитируемый пост)
 только жаль, что с помощью GLUT нельзя узнать, что пользователь отпусил какую-то кнопку на клаве, а можно только узнать какую он нажал, а без этого не сделать игру в реальном времени, а только основанную на сообщениях


Почему нельзя! Можно, я так и делаю! Есть API функции для роботи с клавиатурой! GetAsyncKeyState(int key)! Ею можно ловить момент, когда отпускаеш клавишу! есть и другие, смотри в Windows SDK


SHORT GetAsyncKeyState(

    int vKey    // virtual-key code
   );    
 

Parameters vKey Specifies one of 256 possible virtual-key codes.  



Цитата(KaraKum @  25.3.2008,  11:03 Найти цитируемый пост)
 Просто где-то требуется OpenGL, а где-то DirectX знать, чтобы в коллектив вписаться.


Это правильно, нужно знать все smile  smile 

Это сообщение отредактировал(а) Graf_h - 25.3.2008, 11:47


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
KaraKum
  Дата 25.3.2008, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Цитата(Graf_h @ 25.3.2008,  11:45)
Есть API функции для роботи с клавиатурой! GetAsyncKeyState(int key)! Ею можно ловить момент, когда отпускаеш клавишу! есть и другие, смотри в Windows SDK


SHORT GetAsyncKeyState(

    int vKey    // virtual-key code
   );    
 

Parameters vKey Specifies one of 256 possible virtual-key codes.  

Вот как раз-таки плохо то, что она в WinAPI, а не в GLUT, а если использовать эту функцию в коде, то его нельзя будет без исправлений перенести на другие платформы. А если использовать Windows'овские функции в коде часто и в разных местах, то при переносе очень много исправлять придётся... да и вообще кому я говорю  smile .
А так у меня только WinMain и WndProc зависят от винды, поэтому придётся только их поменять, если переносить понадобится.

P.S.: А тема остаётся в силе, поэтому, народ, жду вашей помощи по поводу инициализации DirectX.
PM MAIL WWW   Вверх
Graf_h
Дата 25.3.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: -1
Всего: 5



Цитата(KaraKum @  25.3.2008,  17:44 Найти цитируемый пост)
Вот как раз-таки плохо то, что она в WinAPI, а не в GLUT, а если использовать эту функцию в коде, то его нельзя будет без исправлений перенести на другие платформы. А если использовать Windows'овские функции в коде часто и в разных местах, то при переносе очень много исправлять придётся... да и вообще кому я говорю   .А так у меня только WinMain и WndProc зависят от винды, поэтому придётся только их поменять, если переносить понадобится.


Смотри, если ты еще будеш использовать интерфейсы DirektX - то это еще хуже, так как это чисто майкрософстский продукт! я бы тебе советовал не заморачиватся насчет кросплатформености и сделать отличную игрулину для винды!  smile Кстати когда сделаеш, даш заценить?

Это сообщение отредактировал(а) Graf_h - 25.3.2008, 18:22


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
KaraKum
Дата 26.3.2008, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Цитата

Смотри, если ты еще будеш использовать интерфейсы DirektX - то это еще хуже

Звучит как предостережение о вхождении в какую-то секту. smile 

Цитата

Кстати когда сделаеш, даш заценить?

Безусловно, только процесс может затянуться, поэтому напиши e-mail в личку.
PM MAIL WWW   Вверх
Graf_h
Дата 26.3.2008, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: -1
Всего: 5



Цитата(KaraKum @  26.3.2008,  00:19 Найти цитируемый пост)
Звучит как предостережение о вхождении в какую-то секту.

Это относительно кросплатформенности! smile 


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
D0C
Дата 1.4.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.3.2007
Где: }{абаровский край

Репутация: нет
Всего: нет



Ты не Visual C++ используешь?
PM MAIL ICQ   Вверх
KaraKum
  Дата 3.4.2008, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Цитата(D0C @ 1.4.2008,  12:37)
Ты не Visual C++ используешь?

Да. Visual V++ 7.
Пути ко всем хедерам, DLL-кам и либам указал и даже пробовал вручную нужные файлы подключать, но прога всё-равно не компилируется.
В чём может быть проблема?
PM MAIL WWW   Вверх
D0C
Дата 3.4.2008, 05:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.3.2007
Где: }{абаровский край

Репутация: нет
Всего: нет



Все понятно, тебе надо скачать Platform SDK (Platform SDK - набор заголовочных файлов, библиотек, инструментов и примеров, выпускаемый Microsoft, 
используемый при создании приложений для целевых платформ Windosw) 400+ мб. Где скачать: Написано тут

Добавляешь директории: 
    * Executable files: Путь к Microsoft Platform SDK\Bin
    * Include files: Путь к Microsoft Platform SDK\Include
    * Library files: Путь к Microsoft Platform SDK\Lib






Это сообщение отредактировал(а) D0C - 3.4.2008, 05:16
PM MAIL ICQ   Вверх
KaraKum
Дата 5.4.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Спасибо за ответы.
Тема отмечена как решённая.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.