`

VS2008 direct9.0 开发平台搭建————第一个D3D程序

 
阅读更多

 原帖:http://blog.csdn.net/jxusthusiwen/article/details/6518499

一.VS2008中DirectX 9.0的配置方法

    1.  在VS2008里面选择: ”工具”-->”选项”-->”项目和解决方案”-->”vc++目录”

   2. 在”显示以下内容的目录”下的下拉框中选择"包含文件"中插入新行输入

       选择“E:/Include”

   3.在”显示以下内容的目录”下的下拉框中选择”库文件”插入新行并输入
      ”E:/Lib/x86”
    (  没有双引号,具体看你的DirectX安装目录)

二.测试程序:

1.  平台:windows 7  direct9.0  VS2008
2.   打开 vs2008 选择新建项目 ->win32项目 ,输入项目名,选择空项目。
向“源文件”添加文件main.cpp
输入以下代码:

Code:
  1. #include<d3d9.h>   
  2.   
  3. #include <tchar.h>   
  4.   
  5. #pragma comment(lib, "d3d9.lib")   
  6. #pragma comment(lib, "d3dx9.lib")   
  7.   
  8. #define WINDOW_CLASS _T("UGPDX")   
  9. #define WINDOW_NAME  _T("Blank D3D Window")   
  10.   
  11.   
  12. // Function Prototypes...   
  13. bool  InitializeD3D( HWND  hWnd,  bool  fullscreen);   
  14. void  RenderScene();   
  15. void  Shutdown();   
  16.   
  17.   
  18. // Direct3D object and device.   
  19. LPDIRECT3D9 g_D3D = NULL;   
  20. LPDIRECT3DDEVICE9 g_D3DDevice = NULL;   
  21.   
  22.   
  23. LRESULT  WINAPI MsgProc( HWND  hWnd,  UINT  msg,  WPARAM  wParam,  LPARAM  lParam)   
  24. {   
  25.      switch (msg)   
  26.     {   
  27.      case  WM_DESTROY:   
  28.         PostQuitMessage(0);   
  29.          return  0;   
  30.          break ;   
  31.   
  32.      case  WM_KEYUP:   
  33.          if (wParam == VK_ESCAPE) PostQuitMessage(0);   
  34.          break ;   
  35.     }   
  36.   
  37.      return  DefWindowProc(hWnd, msg, wParam, lParam);   
  38. }   
  39.   
  40.   
  41. int  WINAPI WinMain( HINSTANCE  hInst,  HINSTANCE  prevhInst,  LPSTR  cmdLine,  int  show)   
  42. {   
  43.      // Register the window class   
  44.     WNDCLASSEX wc = {  sizeof (WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,   
  45.         GetModuleHandle(NULL), NULL, NULL, NULL, NULL,   
  46.         WINDOW_CLASS, NULL };   
  47.     RegisterClassEx(&wc);   
  48.   
  49.      // Create the application's window   
  50.      HWND  hWnd = CreateWindow(WINDOW_CLASS, WINDOW_NAME, WS_OVERLAPPEDWINDOW,   
  51.         100, 100, 640, 480, GetDesktopWindow(), NULL,   
  52.         wc.hInstance, NULL);   
  53.   
  54.      // Initialize Direct3D   
  55.      if (InitializeD3D(hWnd,  false ))   
  56.     {   
  57.          // Show the window   
  58.         ShowWindow(hWnd, SW_SHOWDEFAULT);   
  59.         UpdateWindow(hWnd);   
  60.   
  61.          // Enter the message loop   
  62.         MSG msg;   
  63.         ZeroMemory(&msg,  sizeof (msg));   
  64.   
  65.          while (msg.message != WM_QUIT)   
  66.         {   
  67.              if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))   
  68.             {   
  69.                 TranslateMessage(&msg);   
  70.                 DispatchMessage(&msg);   
  71.             }   
  72.              else   
  73.                 RenderScene();   
  74.         }   
  75.     }   
  76.   
  77.      // Release any and all resources.   
  78.     Shutdown();   
  79.   
  80.      // Unregister our window.   
  81.     UnregisterClass(WINDOW_CLASS, wc.hInstance);   
  82.      return  0;   
  83. }   
  84.   
  85.   
  86. bool  InitializeD3D( HWND  hWnd,  bool  fullscreen)   
  87. {   
  88.     D3DDISPLAYMODE displayMode;   
  89.   
  90.      // Create the D3D object.   
  91.     g_D3D = Direct3DCreate9(D3D_SDK_VERSION);   
  92.      if (g_D3D == NULL)  return   false ;   
  93.   
  94.      // Get the desktop display mode.   
  95.      if (FAILED(g_D3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &displayMode)))   
  96.          return   false ;   
  97.   
  98.      // Set up the structure used to create the D3DDevice   
  99.     D3DPRESENT_PARAMETERS d3dpp;   
  100.     ZeroMemory(&d3dpp,  sizeof (d3dpp));   
  101.   
  102.      if (fullscreen)   
  103.     {   
  104.         d3dpp.Windowed = FALSE;   
  105.         d3dpp.BackBufferWidth = 640;   
  106.         d3dpp.BackBufferHeight = 480;   
  107.     }   
  108.      else   
  109.         d3dpp.Windowed = TRUE;   
  110.     d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;   
  111.     d3dpp.BackBufferFormat = displayMode.Format;   
  112.   
  113.      // Create the D3DDevice   
  114.      if (FAILED(g_D3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,   
  115.         D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_D3DDevice)))   
  116.     {   
  117.          return   false ;   
  118.     }   
  119.   
  120.      return   true ;   
  121. }   
  122.   
  123.   
  124. void  RenderScene()   
  125. {   
  126.      // Clear the backbuffer.   
  127.     g_D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);   
  128.   
  129.      // Begin the scene.  Start rendering.   
  130.     g_D3DDevice->BeginScene();   
  131.   
  132.      // End the scene.  Stop rendering.   
  133.     g_D3DDevice->EndScene();   
  134.   
  135.      // Display the scene.   
  136.     g_D3DDevice->Present(NULL, NULL, NULL, NULL);   
  137. }   
  138.   
  139.   
  140. void  Shutdown()   
  141. {   
  142.      if (g_D3DDevice != NULL) g_D3DDevice->Release();   
  143.      if (g_D3D != NULL) g_D3D->Release();   
  144.   
  145.     g_D3DDevice = NULL;   
  146.     g_D3D = NULL;   
  147. }   


安装错误解决:

问题1..
 d3d002/d3d002/main.cpp(46) : error C3861: “_T”: 找不到标识符
解决方法:加载 头文件:#include <tchar.h>

分享到:
评论

相关推荐

    direct9.0纹理映射

    这段代码设置了第一纹理阶段的纹理过滤器为三线性过滤,并采用边缘寻址模式。具体的实现可能因场景需求和性能优化而有所不同。 在"DirectX_Texture"这个压缩包文件中,很可能包含了用于演示以上概念的C++源代码和...

    direct9.0 3d 游戏引擎开发

    DirectX 9.0是微软推出的一套用于Windows平台的游戏开发和多媒体编程接口,它包含了丰富的功能,主要用于处理图形、音频、输入等与游戏和多媒体应用相关的工作。在这个压缩包中,你可能会找到关于3D游戏引擎开发的...

    DirectSHow+Direct9.0c中文资料

    Direct9.0c,全称DirectX 9.0c,是DirectX的一个版本,包含了Direct3D、DirectInput、DirectPlay、DirectSound等多个子组件。Direct3D是其中的核心部分,专注于3D图形渲染,为游戏和高级应用程序提供了强大的硬件...

    Direct9.0场景(C++代码)

    1. **DirectX 9.0**:DirectX是由微软开发的一系列API,用于Windows平台上的多媒体应用程序,特别是游戏和图形渲染。DirectX 9.0是其的一个版本,提供了对硬件加速的图形、声音和输入等硬件资源的访问,以提高性能和...

    [游戏开发][中文]Direct9.0c入门.PDF

    [游戏开发][中文]Direct9.0c入门.PDF

    Direct9.0 SDK 安装包(6/8)

    Direct9.0 SDK 安装包(6/8)

    Direct9.0 SDK 安装包(1/8)

    Direct9.0 SDK 安装包(1/8)

    Direct9.0 SDK 安装包(8/8)

    Direct9.0 SDK 安装包(8/8)

    direct3d9.0初级教程

    Direct3D 9.0是微软为Windows操作系统开发的一个图形应用程序接口(API),它主要用于创建高性能的2D和3D图形应用,特别是在游戏开发、视觉特效和科学可视化等领域。本教程将带你逐步走进Direct3D 9.0的世界,了解其...

    DIrect 9.0 游戏开发编程基础

    DirectX 9.0是微软推出的一套用于Windows平台的游戏开发和多媒体编程接口,它包含了丰富的图形、音频和输入功能,极大地促进了3D游戏和多媒体应用程序的开发。本教程主要聚焦于DirectX 9.0在3D游戏开发中的应用,...

    用directx 9.0写的最简单的d3d程序

    本程序是一个基于DirectX 9.0的简单示例,其目标是绘制一个蓝色的屏幕,这通常被用作初学者入门Direct3D编程的第一个步骤。 首先,我们需要理解Direct3D的基本工作流程,它包括初始化、设备创建、场景渲染和窗口...

    direct 9.0 SDK summer 2004

    1. **DirectX 9.0**:DirectX 9.0是微软推出的图形API(应用程序接口),旨在优化Windows平台上的硬件加速图形处理。它包括Direct3D、DirectDraw、DirectInput、DirectMusic、DirectPlay、DirectSound等多个子组件,...

    Direct9.0 多流渲染

    Direct9.0 多流渲染技术是微软DirectX 9.0 API中引入的一个特性,它允许开发者同时从多个数据源(流)渲染图形数据,极大地提高了3D图形的处理效率和灵活性。在传统的单流渲染中,所有的顶点属性(如位置、法线、...

    Direct9.0 着色

    Direct9.0着色是DirectX图形编程中的一个重要概念,它是通过编程控制游戏或应用程序中图形的外观,赋予三维模型和场景丰富的色彩和光影效果。本文将深入探讨颜色表示、顶点颜色以及着色技术在Direct9.0中的应用。 ...

    Direct9.0 SDK 安装包(2/8)

    Direct9.0 SDK 安装包(2/8)

    Direct9.0 SDK 安装包(7/8)

    Direct9.0 SDK 安装包(7/8)

    Direct3D 9.0 SDK 文档(中文版)

    总的来说,Direct3D 9.0 SDK 文档(中文版)为开发者提供了一个全面的指南,涵盖了从基础知识到高级特性的方方面面,有助于开发者掌握Direct3D技术并开发出高效的3D应用程序。无论是进行游戏开发、可视化工具制作还是...

    Direct9.0C模拟实现天空盒场景

    Direct9.0C是Microsoft DirectX 9.0的组件之一,专注于图形编程,尤其是游戏和高性能应用程序中的3D渲染。天空盒(Skybox)是一种在3D场景中创建逼真天空背景的技术,它通过六个立方面贴图组合形成一个包围在场景外...

    DirectX9.0+3D游戏开发编程基础(PDF+源码)

    DirectX 9.0是微软推出的一套用于Windows平台的游戏开发和多媒体编程接口,它为开发者提供了丰富的功能,包括3D图形渲染、音频处理、输入设备控制等。本教程《DirectX9.0+3D游戏开发编程基础》旨在帮助初学者掌握...

    Integrating Direct3D 9.0 with MFC

    本文将分步骤地指导读者如何在Visual Studio .Net(7.0)中设置一个简单的Direct3D 9.0应用程序,并利用向导和文档/视图架构实现它。假设读者已经具备一定的Direct3D和MFC基础,但可能没有将两者结合的经验。 我们...

Global site tag (gtag.js) - Google Analytics