C++;如何在没有Win32 API的情况下创建一个简单的窗口? 我一直想从C++开始从头开始创建一个简单的窗口,但是我在互联网上发现的唯一结果是使用Win32 API、DirectX或OpenGL。我想让它没有任何这些API。Win32也将与Windows以外的其他操作系统兼容。我想制作一个程序,它与所有不使用任何API的操作系统兼容,除了从C++生成窗口。

C++;如何在没有Win32 API的情况下创建一个简单的窗口? 我一直想从C++开始从头开始创建一个简单的窗口,但是我在互联网上发现的唯一结果是使用Win32 API、DirectX或OpenGL。我想让它没有任何这些API。Win32也将与Windows以外的其他操作系统兼容。我想制作一个程序,它与所有不使用任何API的操作系统兼容,除了从C++生成窗口。,c++,C++,我认为你误解了API的目的。不能简单地用“普通C++”创建窗口。最终,此任务需要与操作系统(Windows)或位于操作系统顶部的窗口管理器进行协调。与操作系统协调的唯一方法是使用它提供的API(在Windows上,Win32正是这样做的) 如果您正在努力寻找能够在许多平台上显示windows的可移植代码,那么您可以使用类似Qt框架、wxWidgets或任何其他此类跨平台GUI库的库。这些库将代表您与操作系统和/或窗口管理器通信。它们将封装所有不同的Windows/Mac/Linux API,用于

我认为你误解了API的目的。不能简单地用“普通C++”创建窗口。最终,此任务需要与操作系统(Windows)或位于操作系统顶部的窗口管理器进行协调。与操作系统协调的唯一方法是使用它提供的API(在Windows上,Win32正是这样做的)


如果您正在努力寻找能够在许多平台上显示windows的可移植代码,那么您可以使用类似Qt框架、wxWidgets或任何其他此类跨平台GUI库的库。这些库将代表您与操作系统和/或窗口管理器通信。它们将封装所有不同的Windows/Mac/Linux API,用于创建和显示Windows,并将为您提供一个在所有平台上都能运行的一致且相对易于使用的API。在下面,他们将为编译应用程序的平台使用API。

在Windows上,如果要创建窗口,则无法避免使用Win32 API。您使用的一切最终都将使用Win32 API调用为您创建窗口

也就是说,使用一个好的图形库或GUI库来创建您想要的窗口。我个人推荐Allegro5(),但您也可以使用SDL、SFML、ClanLib、Qt、WxWidgets或任何其他库为您创建窗口

在Allegro 5中,创建和显示窗口非常简单:

#include "allegro5/allegro.h"

int main(int argc , char** argv) {
    if (!al_init()) {return -1;}
    ALLEGRO_DISPLAY* display = al_create_display(800,600);
    if (!display) {return -2;}
    al_clear_to_color(al_map_rgb(255,255,255));
    al_flip_display();
    al_rest(5.0);
    return 0;
}

使用跨平台框架,如Qt?您可以尝试使用可跨编译的UI系统,如Qt。“除了平面C++之外,”假设你要的是纯C++,没有UI的语言标准。ῥεῖ: 也许有一个方言的C++用于航空使用。v) @Fredrarson我怀疑是这样。不管怎么说,员工们现在都病了。要避开win32吗?如果您在windows上,请使用mfc,它实际上是win32的外层。但是,您可以使用QT作为跨平台