Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1

DirectX

23.08.2009, 12:30. Показов 4763. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил перейти к покорению DirectX пока написал код инициализации но он вадает ошибку
x.obj : error LNK2019: ссылка на неразрешенный внешний символ "long __cdecl DX3DInit(struct IDirect3D9 * *,struct IDirect3DDevice9
вот код
dx.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "stdafx.h"
#include "dx.h"
#include "dxfunc.h"
 
.....
 
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
 
   hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной
 
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
   if (!hWnd)
     {return FALSE;}
 
   
    //IDirect3DDevice9:
        IDirect3D9 *pD3D = NULL;
        IDirect3DDevice9 *pD3DDevice = NULL;
 
   if (DX3DInit(&pD3D,&pD3DDevice,hWnd,800,600,FALSE)!=S_OK)
        {MessageBox(hWnd,L"Ошибка инициализации DirectX",L"Error",MB_OK); 
        return FALSE;} 
   
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   return TRUE;
}
DXFUNC.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef DXFUNC_H_
#define DXFUNC_H_
 
#include "d3d9.h"
#include "d3dx9.h"
 
HRESULT DX3DInit(IDirect3D9 **ppiD3D9,
                 IDirect3DDevice9 **ppiD3DDevice9,
                 HWND hWnd, 
                 DWORD iWidth, 
                 DWORD iHeight,
                 BOOL bFullScreen);
#endif
DXFUNC.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "dxfunc.h"
 
 
// Функция инициализации Direct3D 
HRESULT DX3DInit(IDirect3D9 **ppiD3D9,
                 IDirect3DDevice9 **ppiD3DDevice9,
                 HWND hWnd, 
                 DWORD iWidth, 
                 DWORD iHeight,
                 BOOL bFullScreen)
{// Инициализация
if((*ppiD3D9 = Direct3DCreate9(D3D_SDK_VERSION)) == NULL) 
    return E_FAIL;
 
// Заполняем основные параметры 
D3DPRESENT_PARAMETERS d3dpp; 
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.BackBufferWidth = iWidth; 
d3dpp.BackBufferHeight = iHeight;
 
// Запрос на отображение в полноэкранном режиме
int iRes;
if (!bFullScreen)
    iRes=MessageBox(hWnd,L"Использовать полноэкранный режим?",L"Экран",MB_YESNO);
else
    iRes = IDYES;
 
if(iRes == IDYES) 
    {// Полноэкранный режим
    // Установка параметров полноэкранного режима 
    d3dpp.BackBufferFormat = D3DFMT_R5G6B5;
    d3dpp.SwapEffect = D3DSWAPEFFECT_FLIP;
    d3dpp.Windowed = FALSE;
    d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
    d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;}
else
    {// Оконный режим 
    RECT wndRect; 
    RECT clientRect;
    GetWindowRect(hWnd,&wndRect); 
    GetClientRect(hWnd,&clientRect);
    int iWinWidth=iWidth+(wndRect.right-wndRect.left)-
    (clientRect.right-clientRect.left);
    int iWinHeight=iHeight+(wndRect.bottom-wndRect.top)-
    (clientRect.bottom-clientRect.top);
    MoveWindow(hWnd, wndRect.left, wndRect.top, iWinWidth, iWinHeight, TRUE);
    
    //Получить формат пиксела 
    D3DDISPLAYMODE d3ddm;
    (*ppiD3D9)->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,  &d3ddm);
    
    //Установка параметров 
    d3dpp.BackBufferFormat = d3ddm.Format;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.Windowed = TRUE;}
 
// Создать ЗD-устройство
DWORD Flags=D3DCREATE_MIXED_VERTEXPROCESSING|D3DCREATE_MULTITHREADED;
HRESULT hRes;
if(FAILED(hRes = (*ppiD3D9)->CreateDevice(
   D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
   hWnd, Flags, &d3dpp, ppiD3DDevice9)))
   return hRes;
// Установить перспективу 
float Aspect=(float)d3dpp.BackBufferWidth/(float)d3dpp.BackBufferHeight;
D3DXMATRIX matProjection;
D3DXMatrixPerspectiveFovLH(&matProjection,D3DX_PI/4.0f,Aspect,10.0f,1000.0f);
(*ppiD3DDevice9)->SetTransform(D3DTS_PROJECTION, &matProjection);
return S_OK;
}
ниже весь проэкт в архиве. Плиз помогите!
Вложения
Тип файла: rar dx.rar (2.06 Мб, 66 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2009, 12:30
Ответы с готовыми решениями:

Реализовать DirectX. Или разобраться в том, как программисту наладить работу DirectX у клиента под Windows
Здравствуйте Программисты. Заплачу за решение моего вопроса! 25-50 тыс. рублей. 50 тыс. рублей заплачу, если полностью решите мой...

с++ и directx

DirectX
Дайте пожалуйста ссылку на скачивание графического пакета DirectX 9.0 SDK и мне нужны комментарии по установке...

3
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
23.08.2009, 17:49
а где реализована ф-я DX3DInit() ? вы только декларацию выложили, а где-то она сама должна быть. скорее всего в какой-то *.dll, *.lib. скажите линкеру где именно.
0
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
23.08.2009, 17:59
а где реализована ф-я DX3DInit() ? вы только декларацию выложили
Да есть она у него в DXFUNC.cpp
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
24.08.2009, 13:34  [ТС]
Спасибо уже разобрался, я *.lib не прописал!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.08.2009, 13:34
Помогаю со студенческими работами здесь

DirectX и C++
Не знаю в тот ли раздел пишу, если нет сори! Решил изучить DirectX в С++ посоветуйте толковый самоучиталь, чтобы с примерами, а еще...

DirectX
Здравствуйте всем. Столько ищу DirectX 11 - ни как нормальный не нахожу, некоторым нужно смску отправить, а в некоторых вообще не тот файл....

DirectX и С++
ищу диск который идет вместе с книгой: DirectX и С++ искуство програмирования автор Фленов у кого есть отпишитесь или скиньте на...

DirectX же!
Доброго дня форумчане! Недавече начал разбираться в примерах Sampels DX SDK, и наткнулся на такую штуку, что используемые методы...

DirectX к C#
Здравствуйте, как подключать DirectX к C#? неделю в гугле просидел - так и не нашел;( Подкиньте какие-то уроки, книжки


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru