经过几分钟的搜索,我了解到 Win32 API 是编写图形 Windows 程序的最低级方法。这是真的?有没有办法直接将东西绘制到视频缓冲区?演示编码员如何编写演示?
反正我懂一点C,这似乎是编写Win32程序的首选方式,我有兴趣坚持使用最低级和最灵活的方式来编写Windows程序。
我从 Microsoft 自己那里听说过许多不同的框架,.NET、Windows Forms、WPF、MFC、WTL、CLR、ATL。 (有人可以澄清其中哪些实际上取决于另一个吗?)
当然还有跨平台工具包,WxWidgets、GTK、Qt、Mono、tk等。
如果我只想用 OpenGL 编写整个界面怎么办?
真的一切都取决于 Win32 API 吗?
我是否必须编写一些使用 Win32 API 调用的代码来至少创建一个供 OpenGL 使用的窗口?
你基本上在一个问题中问了很多问题,我不确定你想要什么。但是,我会尽力做出合理的假设并简要回答您的所有问题。
Win32 API 不仅是图形程序的最低级 API,而且是任何窗口程序的 API。最接近内核,但是没必要写进去。
我假设您想要制作一个图形精美的应用程序。
Win32 API 有一个称为 GDI 的组件,即图形设备接口(interface),您可以使用它与图形缓冲区进行交互,但它的速度非常慢。那么您就可以使用 OpenGL 或 DirectX。 MFC 也早于 .NET,您可以使用它来创建标准的 Windows GUI 程序。然后是 .NET,速度更慢但设计更好一些。
是的,有很多跨平台选项,正如您提到的,您也可以使用它们,但这一切都取决于您尝试做什么。
现在如果你想写一个纯图形应用程序,比如游戏或带有 Shiny 图形的花哨演示,你真的不应该关心 Win32、MFC、.NET 等,因为当你想创建这样的应用程序时,你只需要使用 bare最少的 Win32 来创建骨架窗口,然后您的 OpenGL 或 DirectX 接管控制。
但是,当然,如果它是一个窗口应用程序,它肯定会在下面的某个地方使用 Win32 API,不过你不必关心它:)