【问题标题】:Where to start with Direct2d?从哪里开始使用 Direct2d?
【发布时间】:2012-12-03 17:30:51
【问题描述】:
有兴趣学习 Direct2d 以创建 Windows 8 应用程序,但经过 2 小时的研究后,我完全糊涂了。像这样的示例 (Creating a Simple Direct2D Application) 似乎假设您知道 HWND 和 HRESULT 是什么,以及 Windows API 的一般工作原理。
我的问题是:您是否需要了解 Win API、COM、OLE 和所有其他 Windows 知识才能很好地掌握 Direct2d/3d?
所有其他准系统教程都假设您知道所有这些东西,而我真的不知道从哪里开始。 VS 2012中的启动D2D项目给你一堆文件,但是没有main或WinMain...这个程序是怎么启动的?
【问题讨论】:
标签:
windows
windows-8
direct2d
【解决方案1】:
API 是基于 COM 的,因此您必须熟悉 COM 基础知识才能继续。您实际上不需要从一开始就知道很多,也许只是具有引用计数、实例化和实现接口的 COM 接口概念。它可能比看起来更简单。 Windnows 中的 UI 窗口有句柄,所以 HWND 绝对是要理解的东西。
您所指的示例实际上具有 WinMain。看看完整的教程代码,你会发现it there:
#include "DemoApp.h"
// Provides the application entry point.
int WINAPI WinMain(
HINSTANCE /* hInstance */,
【解决方案2】:
更多材料可在 Pluralsight 上获得,其中 Kenny Kerr 提供了一系列有关 Direct2D 基础知识的教程。这是迄今为止我见过的对 Direct2D 的最佳报道。
在处理 Win32 编程时,HWND 和 HRESULT 是常见的类型。 Kerr 确实涵盖了一些有关为 Direct2D 演示启动和运行 Win32 桌面应用程序和窗口的基础知识,但您最好阅读 Charles Petzold 的 Programming Windows 书籍(第 5 版),全面涵盖 Win32 的所有内容。
Kerr 还有一个关于“COM 基础”的两部分教程,值得一试。我一直对 COM 技术感到困惑,但他的课程消除了许多神秘和复杂性。
请注意,Pluralsight 是一个收费网站,但非常值得订阅。您可以查看免费试用选项,看看那里的课程材料是否适合您。
Dirct2D Fundamentals