Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Левый_Програмер
1 / 1 / 0
Регистрация: 23.08.2011
Сообщений: 22

Не могу исправить ошибку

14.02.2012, 00:35. Показов 2141. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <windows.h>
#include<d3d9.h>
#pragma comment(lib,"d3d9.lib")
 
LPDIRECT3D9 pDirect3D=NULL;  //Указатель на главный интефейс работы с графикой
 
LPDIRECT3DDEVICE9 pDirect3DDevice=NULL; //Указатель на интерфейс работы с 3Д графикой
 
 
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
 
/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";
 
 HRESULT InitialDirect3D(HWND hwnd)  ///ИНициалиация директа
{
    
      if(NULL==(pDirect3D=Direct3DCreate9(D3D_SDK_VERSION))) // Создание указателя на интфейс IDirect3D9
      return E_FAIL;
      D3DDISPLAYMODE Display;   //Создание переменной для создания заднего буфера
      if(FAILED(pDirect3D->
                            GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&Display)))  //Первое используется первичный видеоадаптер по умолчанию ,Второе - указатель на структуру  DYSPLEYMODE
      return  E_FAIL;
      D3DPRESENT_PARAMETERS Direct3DParametr;
      ZeroMemory(&Direct3DParametr,sizeof(Direct3DParametr));    //Очистка структуры
      Direct3DParametr.Windowed=TRUE;                            //Определяет видео режим, значение FALSE для полноэкранного режима
      Direct3DParametr.SwapEffect=D3DSWAPEFFECT_DISCARD;         //Определение обмена буфера
      Direct3DParametr.BackBufferFormat=Display.Format;          //Формат поверхности заднего буфера
      
      if(FAILED(pDirect3D->CreateDevice(D3DADAPTER_DEFAULT,    //Видеокарта по умолчанию
                 D3DDEVTYPE_HAL,hwnd,                          //Режим работы
                 D3DCREATE_HARDWARE_VERTEXPROCESSING,           //Указывает на то , как будут обрабатывать вершины
                 &Direct3DParametr,&pDirect3DDevice)))
       return E_FAIL;
       return S_OK;
       
}
 
 
VOID RenderingDirect3D()  //Функция рендеринга
   {
        pDirect3DDevice->Clear(
                                  0,  //НОмер массива прямоугольников
                                  NULL, //
                                  D3DCLEAR_TARGET,  //Какие поверхности должны быть очищены
                                  D3DCOLOR_XRGB(255,255,50), //Макрос цвета
                                  1.0f,                       //Значение буфера глубины
                                  0);                  //Значение буфера трафарета
        pDirect3DDevice->BeginScene();//Начало сцены
        //Процес прорисовки сцены
        pDirect3DDevice->EndScene();//Конец сцены
        pDirect3DDevice->Present(NULL,NULL,NULL,NULL);
   }
   
   
  
    
    /*  This function is called by the Windows function DispatchMessage()  */
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        
        case WM_PAINT:
            RenderingDirect3D();  
            ValidateRect(hwnd,NULL);  //Прорисовка все клиенской области
            return 0;
        case WM_DESTROY:
            
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            return 0;
            
            
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
          
          
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)
 
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Общее название класса*/
 
    /* The Window structure */
    wincl.hInstance = hThisInstance; //Экземпляр создавемого приложения
    wincl.lpszClassName = szClassName;            //Название класса окна
    wincl.lpfnWndProc = WindowProcedure;      /* Функция обратного вызова */
    wincl.style = CS_DBLCLKS;                 //Стили окна
    wincl.cbSize = sizeof (WNDCLASSEX);      //Размер создаваемой структуры
 
    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);   //Иконка окна
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);  //Малая иконка в панели задач
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);      //Курсор
    wincl.lpszMenuName = NULL;                 /* Подключение стандартного окна*/
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;  //Цвет фона
 
    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx(&wincl))
        return 0;
 
    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Программа",       /* Заголовок */
           WS_OVERLAPPEDWINDOW, /* Стиль и поведение окна */
           CW_USEDEFAULT,       /* Позция окна х */
           CW_USEDEFAULT,       /* Позиция окна у*/
           544,                 /* Ширина*/
           375,                 /* Высота*/
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* Дескриптор меню */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );
           
      
     if(SUCCEEDED(InitialDirect3D(hwnd)))   //Проверка на инициализацию Директа
        {
 
    /* Make the window visible on the screen */
    ShowWindow (hwnd, SW_SHOWDEFAULT);   //Выводим окно
     UpdateWindow(hwnd);
    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);  //Преобразование клавиатурного ввода
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);   //Обработка и пересылка сообщений в WinProc
    }
       } 
    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}



Вот код с созданием окна виндовс и инициализацией DirectX9.

Трабла в том , что в том, что компилятор ругается на неопределенную ссылку.
Вот собственно ошибка(Использую среду wxDev-cpp):

[Linker Error] undefined reference to `Direct3DCreate9@4'
ld returned 1 exit status


Помогите пожалуйста исправить ошибку,уважаемые форумчане.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2012, 00:35
Ответы с готовыми решениями:

Не могу исправить ошибку
Только начал изучать DirectX 11. Скопировал код урока для рисования треугольника, выдавало ошибки, большую часть исправил, но осталась...

Структура: Не могу понять, почему выдает ошибку и как собственно эту ошибку можно исправить?
Привет,не могу понять почему ошибку выдает и как сбстно эту ошибку можно исправить? #include &lt;stdio.h&gt; #include...

Не могу исправить ошибку
Не пойму в чем проблема. Добавил новое поле в продукте, для стикера. В админ части все ок, добавляется в базу, никаких ошибок. Передал...

4
 Аватар для Левый_Програмер
1 / 1 / 0
Регистрация: 23.08.2011
Сообщений: 22
19.02.2012, 12:06  [ТС]
Что, никто не может помочь?
0
1 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 24
19.02.2012, 17:06
Подключи либу d3d9.lib - в хейдере или в самом cpp #pragma comment(lib, "d3d9.lib")
0
 Аватар для Левый_Програмер
1 / 1 / 0
Регистрация: 23.08.2011
Сообщений: 22
19.02.2012, 18:07  [ТС]
Roman Gorbunov, Так ведь подключил, третья строчка кода...
0
1 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 24
19.02.2012, 18:52
а в самой среде добавил либу? Options->Project and Solutions ->VC Dirictories

Добавлено через 10 минут
Извиняюсь, либа добавляется в Project->Settings->Linker. Посмотри чтобы у тебя в Input была соответствующая либа
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2012, 18:52
Помогаю со студенческими работами здесь

не могу исправить ошибку
$edit1 = c('Form1-&gt;edit1')-&gt;text; $edit2 = c('Form1-&gt;edit2')-&gt;text; $combobox1 = c('Form1-&gt;combobox1')-&gt;inText; $url = &quot;тут...

Не могу исправить ошибку
Доброго времени суток. Решаю задачку такую задачку: &quot;Вводится последовательность вещественных чисел, оканчивающаяся нулём и состоящая...

не могу исправить ошибку
в 48 строке вылизиет ошибка: &quot;Параметр должен быть положительным и меньше ширины. Имя параметра: x&quot; не получается исправить ...

Не могу исправить ошибку
int **doubleSize(int **arr, int sz, int startPos, int endPos) { int **arr2 = new int*; for (int i = 0; i &lt; sz; i++) arr2 = new...

Не могу исправить ошибку
Нужно было настроить dtp, stp и etherchannel. Я настроил, но порты зелёным не горят. Вот проект и вот часть задания.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru