有兴趣学习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
...这个程序是如何开始的?
答案 0 :(得分:2)
API是基于COM的,因此您必须熟悉COM基础知识才能继续。实际上你不需要从一开始就知道很多,也许只是COM接口概念与引用计数,实例化和实现接口。它可能比看起来更简单。 Windnows中的UI窗口有句柄,因此HWND
绝对值得理解。
您指的样本实际上有WinMain。看一下完整的教程代码,你会发现it there:
#include "DemoApp.h"
// Provides the application entry point.
int WINAPI WinMain(
HINSTANCE /* hInstance */,
答案 1 :(得分:1)
Pluralsight上提供了更多资料,其中Kenny Kerr有一系列有关Direct2D基础知识的教程。这是迄今为止我见过的Direct2D的最佳报道。
HWND和HRESULT是处理Win32编程时常见的类型。 Kerr确实介绍了获取Win32桌面应用程序以及为Direct2D演示启动和运行窗口的一些基础知识,但最好是由Charles Petzold的编程Windows书籍(第5版)提供,以全面覆盖Win32的所有内容。
Kerr还有一个关于'COM的要点'的两部分教程,值得一试。我一直对COM技术感到困惑,但他的课程消除了很多神秘和复杂性。
请注意,Pluralsight是一个收费网站,但非常值得订阅。您可以查看免费试用选项,看看那里的课程材料是否适合您。