从哪里开始学习Direct2D?

3

如果你有兴趣学习Direct2d以创建Windows 8应用程序,但是在研究了两个小时后,你可能会感到非常困惑。像这样的示例(Creating a Simple Direct2D Application)似乎假定你知道HWNDHRESULT是什么,以及Windows API的工作原理。

我的问题是:你是否需要了解Win API、COM、OLE以及所有这些其他Windows相关知识才能很好地掌握Direct2d/3d?

所有其他基础教程都假定你已经知道所有这些内容,而我并不知道从何处开始。VS 2012中的启动D2D项目给你一堆文件,但没有mainWinMain...这个程序怎么启动呢?

3个回答

2
API基于COM,因此您需要熟悉COM基础知识才能继续。实际上,您从一开始就不需要了解太多,也许只需要掌握与引用计数、实例化和实现接口相关的COM接口概念即可。它可能比看起来简单得多。Windows中的UI窗口具有句柄,因此HWND肯定是需要理解的内容。
您所提到的示例实际上具有WinMain。请查看完整的教程代码,您将在这里找到它:
#include "DemoApp.h"

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

1

在Pluralsight上,Kenny Kerr有一系列关于Direct2D基础知识的教程,可提供更多资料。这是我到目前为止见过的最好的Direct2D覆盖范围。

在处理Win32编程时,HWND和HRESULT是常见类型。Kerr确实涵盖了一些基础知识,包括如何运行Direct2D演示的Win32桌面应用程序和窗口,但对于所有Win32相关内容建议使用Charles Petzold的《Programming Windows》书籍(第五版)进行全面的覆盖。

Kerr还有一份名为“COM的基本要素”的双重教程,值得一看。我一直对COM技术感到困惑,但他的课程解除了许多神秘和复杂性。

请注意,Pluralsight是一个付费网站,但绝对值得订阅。您可以查看免费试用选项,以确定其中的课程材料是否适合您。

Direct2D基础知识


0
我使用Visual Studio C++(用于Windows)编写C程序。你在微软网站上找到的示例有一个3,888页的PDF可以下载。这是一个多年来关于Direct2D的文章汇编。我从中使用示例来编写我的X-Plane程序XPlaneNetworkData2.exe中的地图部分。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接