DX93DInit\DX93DInit.cpp(8) : error C2143: syntax error : missing ';' before '*'
DX93DInit\DX93DInit.cpp(8) : error C2501: 'IDirect3D9' : missing storage-class or type specifiers
\DX93DInit\DX93DInit.cpp(8) : error C2501: 'pD3D' : missing storage-class or type specifiers
DX93DInit\DX93DInit.cpp(9) : error C2143: syntax error : missing ';' before '*'
DX93DInit\DX93DInit.cpp(9) : error C2501: 'IDirect3DDevice9' : missing storage-class or type specifiers
DX93DInit\DX93DInit.cpp(9) : error C2501: 'pD3DDevice' : missing storage-class or type specifiers
DX93DInit\DX93DInit.cpp(117) : error C3861: 'DX3DInit': identifier not found, even with argument-dependent lookup
Инициализация Direct3D
Изучаю Direct3D по книге Фленова. Первый же пример не компилируется. То, что я написал можно взять
В инклудах напутал малось. Там у тебя есть dxfunc.h и dxfunc.cpp. И DX9 хейдеры подключаются только в dxfunc.h, который нигде не инклудится, кроме как в dxfunc.cpp. :D
там), компилятор сообщает, что
Что это? :o
После того, как я немного исправил код(лежит
Код:
\dxfunc.cpp(88) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Что это? :o
А если #include "dxfunc.h" поместить в DX93DInit.h? ;)
[COLOR="Silver"]Какой <censored> неожиданный конец файла может быть в dxfunc.cpp? "Медленный" что ли?[/COLOR]
разобрался :).
Ошибки:
Архив с работающим примером можно взять там.
В общем,
Ошибки:
- Ошибка линкера
Вместо d3d9.lib указал d3d.lib - Опечатки
dxfunc.h
ВместоКод:...
HRESULT DX3DInit(IDirect3D **ppiD3D9,
IDirect3DDevice **ppiD3DDevice9,
...
нужноКод:...
HRESULT DX3DInit(IDirect3D9 **ppiD3D9,
IDirect3DDevice9 **ppiD3DDevice9,
...
dxfunc.cpp - строка 12
Закрывающая скобка:
if((*ppiD3D9 = Direct3DCreate9(D3D_SDK_VERSION)[COLOR="#ff0000"])[/COLOR] == NULL)
Кстати, туда неплохо добавить "ошибочный" MessageBox.
dxfunc.cpp - строка 17
Zero[COLOR="Red"]m[/COLOR]Memory(&d3dpp, sizeof(d3dpp));
Похожая опечатка в объявлении функции DX3DInitКод:...
HRESULT DX3DInit(IDirect3D[COLOR="Red"]9[/COLOR] **ppiD3D9,
...
dxfunc.cpp - строка 36
Константу D3DPRESENTATION_INTERVAL_DEFAULT нужно заменить на D3DPRESENT_INTERVAL_DEFAULT
Немного ниже недописал имя параметра:Код:...
d3dpp.BackBuffer[COLOR="Red"]Format[/COLOR] = d3ddm.Format;
... - Настройки IDE
- Project -> "имя проекта" Properties (Alt+F7) -> Configuration Properties -> C/C++ -> Precompiled Headers-> reate/Use Precompiled Header -> Not Using Precompiled Headers
- Project -> "имя проекта" Properties (Alt+F7) -> Configuration Properties -> C/C++ -> Language -> Force Conformance in For Loop Scope -> NO (/ZC:ForScope~)
Архив с работающим примером можно взять там.