当前位置: 首页 > news >正文

DirectX12环境配置(1)

开发环境:visual studio 2022 

第一种配置DirectX12环境得方式。首先创建一个c++得空项目,然后创建一个main.cpp文件。把下面这串代码放进去,先不用管这串代码什么意思,后面会逐行逐句得讲解,因为我们创建得是空项目,默认就是控制台项目,我们需要将项目改成窗体项目,在属性-》连接器-》系统选项里面更改为窗口项目就可以了。

#pragma comment(lib,"d3dcompiler.lib")
#pragma comment(lib, "D3D12.lib")
#pragma comment(lib, "dxgi.lib")
#include <Windows.h>
#include <d3d12.h>
#include <dxgi1_6.h>LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{// 创建窗口HWND hwnd;WNDCLASSEX wc = {};wc.cbSize = sizeof(WNDCLASSEX);wc.style = CS_HREDRAW | CS_VREDRAW;wc.lpfnWndProc = WindowProc;wc.hInstance = hInstance;wc.hCursor = LoadCursor(NULL, IDC_ARROW);wc.lpszClassName = L"DirectX12Sample";RegisterClassEx(&wc);RECT windowRect = { 0, 0, 800, 600 };AdjustWindowRect(&windowRect, WS_OVERLAPPEDWINDOW, FALSE);hwnd = CreateWindowEx(0, L"DirectX12Sample", L"DirectX 12 Sample", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,windowRect.right - windowRect.left, windowRect.bottom - windowRect.top, NULL, NULL, hInstance, NULL);// 初始化 DirectX 12ID3D12Device* pDevice;ID3D12CommandQueue* pCommandQueue;//HRESULT WINAPI D3D12CreateDevice(//    _In_opt_ IUnknown * pAdapter,//    D3D_FEATURE_LEVEL MinimumFeatureLevel,//    _In_ REFIID riid, // Expected: ID3D12Device//    _COM_Outptr_opt_ void** ppDevice);D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&pDevice));D3D12_COMMAND_QUEUE_DESC queueDesc = {};queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;pDevice->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&pCommandQueue));// 显示窗口ShowWindow(hwnd, nCmdShow);// 主消息循环MSG msg = {};while (true){if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){TranslateMessage(&msg);DispatchMessage(&msg);if (msg.message == WM_QUIT)break;}// 渲染逻辑// 在此处执行绘制命令// 交换前后缓冲区// pCommandQueue->Present();// 在这里添加帧同步逻辑,确保帧速率}// 清理资源// 释放 DirectX 12 对象return static_cast<int>(msg.wParam);
}LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_DESTROY:PostQuitMessage(0);return 0;default:return DefWindowProc(hwnd, uMsg, wParam, lParam);}
}

第二种配置方式是通过visual studio来配置。

首先还是跟上面一样,先创建一个空项目。然后在属性里面进行配置。

1.选择VC++目录,然后点击包含目录,包含:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um两个文件夹(注意10.0.19041.0是我电脑上面的版本,大家的可能不一样),最后点击确定。
2.点击库目录,添加相应的库,我们需要添加的库文件夹为:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64

然后点击确定就可以了

3.添加了库目录,我们还需要添加附加依赖项,所以选择链接器,然后选择输入,最后点击附加依赖项,输入d3d12.lib、dxgi.lib和d3dcompiler.lib设置好了就可以点击确定了。

将上面环境配置好之后,同样将控制台项目更改为窗体项目,将上面这串代码复制进去,能运行就说明环境配置好了。

http://www.lryc.cn/news/89980.html

相关文章:

  • Go-异常处理(defer recover panic)
  • 【完美解决】mysql启动不了:本地计算机上的MySQL服务启动后停止
  • C++ Qt 项目设计:基于C++与Qt的跨平台定时关机/关屏应用开发
  • Python新技术和趋势:如何应对Python生态的变化和发展趋势
  • Flutter 又一元老离职,感谢 Tim 这些年的付出
  • C++学习笔记3:sort和priority_queue的比较器重载
  • Java之旅——Mybatis
  • 抽奖中的分布式锁应用
  • 项目总结 车牌识别
  • 一台服务器通过apache安装多个web应用
  • 网络连通性测试
  • AntDB-S流式数据库体验
  • CentOS 和 Windows 上添加和删除路由
  • 2023年电大秋季招生截止日期 什么时候开始报名
  • 滑动窗口问题
  • 电子合同网页预览盖章效果实现
  • 棋盘覆盖问题
  • [CISCN2023]unzip
  • 基于Html5的在线资料库的设计与实现(asp.NET,SQLServer)
  • 【Vue】二:Vue核心处理---计算属性 监视属性
  • 【Web服务器集群】Nginx网站服务
  • 开始第一个vue项目,环境搭建+html项目运行
  • Redis 的数据类型和命令帮助
  • 【C++11】智能指针
  • 三、Go的常用命令以及Go的执行原理
  • ESP32 CAM 模块和 OpenCV 的二维码扫描器
  • 多链路传输技术在火山引擎 RTC 的探索和实践
  • 在Flask中构建API接口
  • Postgres vs MySQL
  • 02.IP地址以及静态路由配置