3

有兴趣学习 Direct2d 来创建 Windows 8 应用程序,但经过 2 小时的研究后,我完全糊涂了。像这样的示例(创建简单的 Direct2D 应用程序)似乎假设您知道什么是HWNDHRESULT,以及 Windows API 的一般工作原理。

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

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

4

2 回答 2

2

The API is COM-based, so you will have to get familiar with COM basics to move on. You actually don't need to know a lot from the start, perhaps just COM interfaces concept with reference counting, instantiation and implementing an interface. It might be simpler than it seems. UI windows in Windnows have handles, so HWND is definitely something to understand.

The sample you are referring to actually has WinMain. Have a look at full tutorial code, and you will find it there:

#include "DemoApp.h"

// Provides the application entry point.
int WINAPI WinMain(
    HINSTANCE /* hInstance */,
于 2012-12-16T11:08:14.750 回答
1

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

HWND 和 HRESULT 是处理 Win32 编程时常用的类型。Kerr 确实涵盖了一些有关为 Direct2D 演示启动和运行 Win32 桌面应用程序和窗口的基础知识,但您最好阅读 Charles Petzold 的 Programming Windows 书籍(第 5 版),以全面涵盖 Win32 的所有内容。

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

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

Dict2D 基础知识

于 2014-05-08T21:44:05.417 回答