Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

IDirect3D9 *D3dObject;

13K
11 июля 2009 года
karimchik
65 / / 16.06.2008
Народ! хелп плиз!
Компил выдаёт ошибку что незнает акую функцию как IDirect3D9 *D3dObject;

вот код:
Код:
// 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);
}

P.S.
Windows.h подключать не надо...

[COLOR="Red"]---
Код правильно оформлять надо, уважаемый...
Модератор.[/COLOR]
9
11 июля 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: karimchik
Народ! хелп плиз!
Компил выдаёт ошибку что незнает акую функцию как IDirect3D9 *D3dObject;


Конечно не знает. Это ж не функция. Смотри документацию.
И вообще, оригинальное сообщение об ошибочке нелишне будет показать.

13K
11 июля 2009 года
karimchik
65 / / 16.06.2008
А ошибка вот такая
Цитата:

--------------------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)

9
11 июля 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: karimchik
А ошибка вот такая


14.exe - 2 error(s), 0 warning(s)


Ёлы, а библиотеки-то все подключил? В смысле d3d9.lib? И причем тут вообще IDirect3D9 *D3dObject и компилятор?
[quote=karimchik]
... Компил выдаёт ошибку что незнает акую функцию как IDirect3D9 *D3dObject;
[/quote]

13K
12 июля 2009 года
karimchik
65 / / 16.06.2008
Решил эту проблему следующим образом:
 
Код:
#pragma comment( lib, "d3d9.lib" )
#pragma comment( lib, "d3dx9.lib" )

Тоесть подключил библиотеки.А через настройки не подключается!
9
12 июля 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: karimchik
Решил эту проблему следующим образом:
 
Код:
#pragma comment( lib, "d3d9.lib" )
#pragma comment( lib, "d3dx9.lib" )

То есть подключил библиотеки...


Тоже вариант.

Цитата: karimchik

...
А через настройки не подключается!


Ну, тут кривизна рук играет не последнюю роль... :rolleyes:

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог