【问题标题】:MFC - D3DCOLORVALUE undefined in base MFC applicationMFC - D3DCOLORVALUE 在基本 MFC 应用程序中未定义
【发布时间】:2018-05-19 01:52:59
【问题描述】:

我正在使用 Visual Studio 2013 创建一个新的 MFC 应用程序。 我使用设置向导创建了应用程序,将其保留为所有默认值。

在添加任何内容之前测试它是否运行时会出现编译错误:

IntelliSense:标识符“D3DCOLORVALUE”未定义

后面有很多:

错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int

为什么这会发生在直接从向导中取出的股票标准应用程序中?我将如何让这个工作?

【问题讨论】:

  • 您可能忘记包含适当的 Direct3d 头文件。
  • 在哪里可以找到要包含的头文件?为什么我必须直接在创建向导之外手动将其添加到库存标准应用程序中?
  • D3DCOLORVALUE 是 Direct3D 的东西。你在哪个源文件中有这个D3DCOLORVALUE 符号?您是如何准确地使用向导创建应用程序的?
  • 文件 -> 新建 -> 项目 -> Visual C++ -> MFC -> MFC 应用程序 -> 确定 -> 完成 -> F5 -> 是。即使只是这样做也会为我重新创造这个。 D3DCOLORVALUE 在 d2dbasetypes.h 中定义
  • 更正:给出错误的行在 d2dbasetypes.h 中,其中 D2D_COLOR_F 定义为类型 D3DCOLORVALUE。当我尝试转到 D3DCOLORVALUE 的定义时,它会给出错误“找不到符号 'D3DCOLORVALUE' 的定义。”

标签: c++ visual-c++ visual-studio-2013 mfc


【解决方案1】:

d2dbasetypes.h 在尝试定义 D2D_COLOR_F 时出现错误。 我用谷歌搜索了基本类型(D3DCOLORVALUE),发现它应该在“D3D9Types.h”中

我在 d2dbasetypes 头文件的顶部添加了#include "D3D9Types.h",它似乎已经解决了这个问题。

我不知道为什么默认情况下生成的代码中不包含这个...

【讨论】:

  • 那应该是#include <D3D9Types.h>。默认情况下不包含它,因为生成的代码应该是最少的。如果开发人员决定使用 Direct3D,他们应该了解他们需要引用哪些标头和库。
猜你喜欢
  • 2015-03-12
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多