// 14.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "d3dx9.h"
#include "d3d9.h"
IDirect3D9 *D3dObject;
IDirect3DDevice9* D3dDevice;
LRESULT __stdcall MainWindowProc
(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
);
void DrawWindowArea(HWND hwnd);
int __stdcall WinMain
(
HINSTANCE instance,
HINSTANCE previousInstance,
LPSTR commandLine,
int commandShow
)
{
WNDCLASS wc;
ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.hInstance = instance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.lpszClassName = "mywndclass";
wc.lpfnWndProc = MainWindowProc;
if( !RegisterClass(&wc) )
return 0;
HWND AppWnd = CreateWindow
(
"mywndclass",
"d3d test",
WS_OVERLAPPEDWINDOW,
100, 100, 450, 400,
NULL,
NULL,
instance,
NULL
);
if( !AppWnd )
return 0;
D3dObject = Direct3DCreate9(D3D_SDK_VERSION);
if( !D3dObject )
return 0;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
HRESULT res;
res = D3dObject -> CreateDevice
(
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
AppWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&d3dpp,
&D3dDevice
);
if( res != D3D_OK )
{
D3dObject -> Release();
return 0;
}
ShowWindow(AppWnd, commandShow);
UpdateWindow(AppWnd);
MSG msg;
while( GetMessage(&msg, NULL, 0, 0) > 0 )
{
DispatchMessage(&msg);
}
D3dDevice -> Release();
D3dObject -> Release();
return msg.wParam;
}
LRESULT __stdcall MainWindowProc
(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
)
{
switch(msg)
{
case WM_PAINT:
DrawWindowArea(hwnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
void DrawWindowArea(HWND hwnd)
{
D3dDevice -> Clear
(
0,
NULL,
D3DCLEAR_TARGET,
D3DCOLOR_XRGB(240, 240, 0),
0,
0
);
D3dDevice -> Present(NULL, NULL, NULL, NULL);
RECT wndRect;
GetClientRect(hwnd, &wndRect);
ValidateRect(hwnd, &wndRect);
}
IDirect3D9 *D3dObject;
Компил выдаёт ошибку что незнает акую функцию как IDirect3D9 *D3dObject;
вот код:
Код:
P.S.
Windows.h подключать не надо...
[COLOR="Red"]---
Код правильно оформлять надо, уважаемый...
Модератор.[/COLOR]
Цитата: karimchik
Народ! хелп плиз!
Компил выдаёт ошибку что незнает акую функцию как IDirect3D9 *D3dObject;
Компил выдаёт ошибку что незнает акую функцию как IDirect3D9 *D3dObject;
Конечно не знает. Это ж не функция. Смотри документацию.
И вообще, оригинальное сообщение об ошибочке нелишне будет показать.
Цитата:
--------------------Configuration: 14 - Win32 Debug--------------------
Compiling...
14.cpp
Linking...
14.obj : error LNK2001: unresolved external symbol _Direct3DCreate9@4
Debug/14.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
14.exe - 2 error(s), 0 warning(s)
Цитата: karimchik
А ошибка вот такая
14.exe - 2 error(s), 0 warning(s)
14.exe - 2 error(s), 0 warning(s)
Ёлы, а библиотеки-то все подключил? В смысле d3d9.lib? И причем тут вообще IDirect3D9 *D3dObject и компилятор?
[quote=karimchik]
... Компил выдаёт ошибку что незнает акую функцию как IDirect3D9 *D3dObject;
[/quote]
Код:
#pragma comment( lib, "d3d9.lib" )
#pragma comment( lib, "d3dx9.lib" )
#pragma comment( lib, "d3dx9.lib" )
Тоесть подключил библиотеки.А через настройки не подключается!