Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 22.04.2015
Сообщений: 15
1

DirectX не запускается проект!

11.07.2015, 12:32. Показов 545. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код:
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
#include <Windows.h>
#include <d3d9.h>
#pragma comment(lib, "d3d9.lib") 
#pragma comment(lib, "d3dx9.lib") 
//directX 3D initialize
LPDIRECT3D9 pDirect3D = NULL;
LPDIRECT3DDEVICE9 pDirect3dDevice = NULL;
HRESULT InitialDirect3D(HWND hwnd)
{
    if (NULL == (pDirect3D = Direct3DCreate9(D3D_SDK_VERSION)))
        return E_FAIL;
    D3DDISPLAYMODE Display;
    if (FAILED(pDirect3D -> GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &Display)))
        return E_FAIL;
    D3DPRESENT_PARAMETERS Direct3DParametr;
    ZeroMemory(&Direct3DParametr, sizeof(Direct3DParametr));
    Direct3DParametr.Windowed = TRUE;
    Direct3DParametr.SwapEffect = D3DSWAPEFFECT_DISCARD;
    Direct3DParametr.BackBufferFormat = Display.Format;
    
if(FAILED(pDirect3D -> CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &Direct3DParametr, &pDirect3dDevice)))
     return E_FAIL;
    return S_OK;
}
VOID RenderingDirect3D()
{
    if (pDirect3dDevice == NULL)
     return;
    pDirect3dDevice -> Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,255,0), 1.0f, 0);
    pDirect3dDevice -> BeginScene();
    pDirect3dDevice -> EndScene();
    pDirect3dDevice -> Present(NULL, NULL, NULL, NULL);
}
VOID DelteDirect3D()
{
    if (pDirect3dDevice != NULL)
        pDirect3dDevice -> Release();
    if (pDirect3dDevice != NULL)
        pDirect3D -> Release();
}
LRESULT CALLBACK MainWinProc(HWND hwnd,
                             UINT msg,
                             WPARAM wparam,
                             LPARAM lparam)
{
    switch(msg)
    {
    case WM_PAINT:
        //--------
        RenderingDirect3D();
        ValidateRect(hwnd, NULL);
        //--------
        break;
    case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        }
        break;
        return (DefWindowProc(hwnd, msg, wparam, lparam));
    }
}
int WINAPI WinMain(HINSTANCE hinstance,
                 HINSTANCE hprevinstance,
                 LPSTR lpCmdLine,
                 int nCmdShow
                 )
{
    WNDCLASSEX windowsclass;
    HWND hwnd;
    MSG msg;
    windowsclass.cbSize = sizeof(WNDCLASSEX);
    windowsclass.style = CS_VREDRAW|CS_HREDRAW|CS_OWNDC|CS_DBLCLKS;
    windowsclass.lpfnWndProc = MainWinProc;
    windowsclass.cbClsExtra = 0;
    windowsclass.cbWndExtra = 0;
    windowsclass.hInstance = hinstance;
    windowsclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    windowsclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    windowsclass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
    windowsclass.lpszMenuName = NULL;
    windowsclass.lpszClassName = "WINDOWSCLASS";
    //------
    if (!RegisterClassEx(& windowsclass))
        return (0);
    //------
    if (!(hwnd = CreateWindowEx(NULL, "WINDOWSCLASS", "Инициализация DirectX3D", WS_OVERLAPPED|WS_VISIBLE, 300, 150, 500, 400,NULL, NULL, hinstance, NULL)))
return (0);
    if (SUCCEEDED(InitialDirect3D(hwnd)))
    {
        ShowWindow(hwnd, nCmdShow);
        UpdateWindow(hwnd);
        while(GetMessage(&msg, NULL, 0, 0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
}


Проблема вот в чем компилируется нормально, но при запуске проект не выводится на экран, MVS(Microsoft Visual Studio 2010 Express) предупреждений не выводит, то есть ошибка характера "программист забыл". Для наглядности приведу еще один пример.
Такой же эффект можно добиться и в консольных приложениях, если не задержать(system("pause >> void "); или _getch() окно вывода.
Как решить эту проблему?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2015, 12:32
Ответы с готовыми решениями:

Не запускается проект
Запускаю. Собирается … СБорка заканчивается и ничего не происходит.

Не запускается проект!
Здравствуйте! Был скачен c++ builder, сделана программа(сохранена), запускаю, но не запускается. Была версия что дело в коде, чтоб в этом...

Не запускается проект
Нажимаю F9, компиляция завершается без ошибок, но дальше ничего не происходит, то есть не запускается файл проекта!

1
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
12.07.2015, 00:43 2
C++
1
2
3
4
5
//обнули класс-окна
//так
WNDCLASSEX windowsclass = {0};
//или
ZeroMemory(&windowsclass, sizeof(windowsclass));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.07.2015, 00:43
Помогаю со студенческими работами здесь

Не запускается проект
Здравствуйте, подскажите плиз, почему я не могу запустить проект который создала, весь код работает нету ошибок, но вот при нажатии на RUN,...

Проект созданный в более ранней версии VS запускается, а созданный проект в VS 10 с теми же исходниками не запускается
Собственно, вопрос в заголовке. Скачал я урок по OpenGL от NeHe (урок 22), решил запустить у себя в VS10 - получилось (но только, vs...

Автоматизация подключения DirectX в проект
Всем привет! При создании каждого нового проекта (в Visual Studio 2012), мне приходится самостоятельно указывать в настройках проекта...

DirectX - какой проект создавать?
Я нашел хороший гайд по DirectX с нуля. Вопрос какого типа создавать проэкт? Пустой или какой?

Добавление DirectX SDK в проект
Приветствую. Нужно &quot;прицепить&quot; к проекту DirectX SDK. DXSDK_Jun10.exe скачал и установил. По этому руководству ничего не получилось -...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class - средства для работы с неизменяемыми структурами данных, каждое из которых предлагает свой уникальный подход к решению этой задачи. История их появления весьма. . .
Создание производительны­­х API с Java и gRPC
Wired 04.03.2025
В разработке производительность и масштабируемость микросервисных приложений играют ключевую роль. Традиционные REST API, несмотря на свою популярность и простоту, не всегда способны обеспечить. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 знаменует собой значительный скачок в развитии Java, внося фундаментальные улучшения в производительность, безопасность и удобство разработки. Релиз включает множество революционых изменений,. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Современная блокчейн-разработка на Java предоставляет разработчикам широкий спектр возможностей. В отличие от Solidity, который ограничен экосистемой Ethereum, Java позволяет создавать как. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru