从哪里开始使用 Direct2d?

问题描述 投票:0回答:3

有兴趣学习 Direct2d 创建 Windows 8 应用程序,但经过 2 小时的研究,我完全困惑了。像这样的示例(创建简单的 Direct2D 应用程序)似乎假设您知道

HWND
HRESULT
是什么,以及 Windows API 一般如何工作。

我的问题是这样的:您是否需要了解 Win API、COM、OLE 以及所有其他 Windows 内容才能很好地掌握 Direct2d/3d?

所有其他准系统教程都假设您了解所有这些内容,而我真的不知道从哪里开始。 VS 2012 中的启动 D2D 项目为您提供了一堆文件,但没有

main
WinMain
...这个程序是如何启动的?

windows windows-8 direct2d
3个回答
2
投票

API 是基于 COM 的,因此您必须熟悉 COM 基础知识才能继续。实际上,您不需要从一开始就了解很多,也许只需了解 COM 接口概念以及引用计数、实例化和实现接口即可。它可能比看起来更简单。 Windnows 中的 UI 窗口有句柄,因此

HWND
绝对是需要理解的东西。

您所指的示例实际上有WinMain。看看完整的教程代码,你会发现它在那里

#include "DemoApp.h"

// Provides the application entry point.
int WINAPI WinMain(
    HINSTANCE /* hInstance */,

1
投票

Pluralsight 上提供了更多材料,其中 Kenny Kerr 有一系列有关 Direct2D 基础知识的教程。这是迄今为止我见过的关于 Direct2D 的最佳报道。

HWND 和 HRESULT 是处理 Win32 编程时常见的类型。 Kerr 确实介绍了有关获取 Win32 桌面应用程序和窗口并运行 Direct2D 演示的一些基础知识,但 Charles Petzold 的《Windows 编程》书(第五版)会为您提供最好的服务,其中全面介绍了 Win32 的所有内容。

Kerr 还有一个关于“COM 要点”的两部分教程,值得一看。我总是对 COM 技术感到困惑,但他的课程消除了很多神秘感和复杂性。

请注意,Pluralsight 是一个收费网站,但非常值得订阅。您可以查看免费试用选项,看看那里的课程材料是否适合您。

Direct2D 基础知识


0
投票

我使用 Visual Studio C++(适用于 Windows)用 C 语言进行编程。您获得该示例的 Microsoft 网站有一个 3,888 页的 PDF 可供下载。这是多年来撰写的有关 Direct2D 的文章的概要。我使用其中的示例来编写我的 X-Plane 程序 XPlaneNetworkData2.exe 的地图部分。

© www.soinside.com 2019 - 2024. All rights reserved.