2 xhrt945 xhrt945 于 2016.02.11 13:58 提问

关于 DirectX 出现宏重定义的问题

以下是代码

 #pragma once

#pragma comment(lib, "dxgi.lib")
#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "d3dx11.lib")
#pragma comment(lib, "d3dx10.lib")

#include <dxgi.h>
#include <d3dcommon.h>
#include <d3d11.h>
#include <d3dx10math.h>

class D3DClass
{
public:
    D3DClass();
    D3DClass(const D3DClass&);
    ~D3DClass();

    bool Initiazlize(int screenWidth, int screenHeight, bool vsync, HWND hwnd, bool fullscreen,
        float screenDepth,int screenNear);
    void Showdown();

    void BeginScene(float red, float green, float blue, float alpha);
    void EndScene();

    ID3D11Device* GetDevice();
    ID3D11DeviceContext* GetDeviceContext();

    void GetProjectionMatrix(D3DXMATRIX& projectionMatrix);
    void GetWorldMatrix(D3DXMATRIX& worldMatrix);
    void GetOrthoMatrix(D3DXMATRIX& orthoMarix);
    void GetVideoCardInfo(char* carName, int& memory);

private:
    bool m_vsync_enabled;                               //是否垂直同步
    int m_videoCardMemory;                              //显存大小
    char m_videoCardDescription[128];                   //显卡名称
    IDXGISwapChain* m_swapChain;                        //交换链对象
    ID3D11Device* m_device;                             //设备对象
    ID3D11DeviceContext* m_deviceContext;               //设备上下文对象
    ID3D11RenderTargetView* m_renderTargetView;         //渲染目标视图
    ID3D11Texture2D* m_depthStencilBuffer;              //深度模板缓冲
    ID3D11DepthStencilState* m_depthStencilState;       //深度模板状态
    ID3D11DepthStencilView* m_depthStencilState;        //深度目标状态
    ID3D11RasterizerState* m_rasterizerState;           //渲染状态
    D3DXMATRIX m_projectionMatrix;                      //投影矩阵
    D3DXMATRIX m_wordMatrix;                            //世界坐标系矩阵
    D3DXMATRIX m_orthoMatrix;                           //正交投影矩阵
};

这是警告

图片说明

错误:
图片说明

系统是win10,用vs2013写的,SDK是DXSDK_Jun10,代码是在学的,希望各位大神不吝赐教,小弟在此谢过了

5个回答

devmiao
devmiao   Ds   Rxr 2016.02.11 22:39

加上命名空间看看,你定义的类型和库中的冲突了。

devmiao
devmiao   Ds   Rxr 2016.02.11 22:39
xhrt945
xhrt945   2016.02.11 23:56

是和Windows的SDK库冲突了,改变了一下包含目录的位置就好了,多谢二位了,91program,苏小瞄,

qq_27647347
qq_27647347 怎么解决的
3 个月之前 回复
xhrt945
xhrt945   2016.02.11 13:59

http://www.it165.net/pro/html/201203/1911.html
在这里看到的代码,之前没有打上去

91program
91program   Ds   Rxr 2016.02.11 14:12

可能是头文件包含重复了,请检查一下 .cpp 和 .h/.hpp 中包含的头文件的情况

xhrt945
xhrt945 回复91program: 应该是WIN8SDK冲突了,,,但是不知道怎么解决,不包含那个都不行
接近 2 年之前 回复
91program
91program 回复xhrt945: 有可能,你可以检查一下编译环境中 include 的路径设置,看看包含了哪些路径。
接近 2 年之前 回复
xhrt945
xhrt945 会不会是我之前安装过一次DirectX,不是SDK的,之后又安装的DXSDK_Jun10的问题
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!