Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;或者选择wxWidgets?_C++_User Interface_Winapi_Wxwidgets - Fatal编程技术网

C++ c++;或者选择wxWidgets?

C++ c++;或者选择wxWidgets?,c++,user-interface,winapi,wxwidgets,C++,User Interface,Winapi,Wxwidgets,我喜欢编写GUI软件(我没有GUI编程经验) 我需要它尽可能小,快速的GUI和本地的外观和感觉在一个自我包含的exe。仅适用于从windows 2000到windows 7(或其任何名称)的windows。 最好的选择是什么?win32 api还是wxWidgets Win32,您的分发包中不需要wxWidgets(它会很小)。更难,但我认为更好。使用wxwidgets。与win32 api相比,它更简单。。另外,您还可以看到它更简单、更丰富。在Windows 7中,许多GUI API不能直接用

我喜欢编写GUI软件(我没有GUI编程经验) 我需要它尽可能小,快速的GUI和本地的外观和感觉在一个自我包含的exe。仅适用于从windows 2000到windows 7(或其任何名称)的windows。
最好的选择是什么?win32 api还是wxWidgets

Win32,您的分发包中不需要wxWidgets(它会很小)。更难,但我认为更好。

使用wxwidgets。与win32 api相比,它更简单。。另外,您还可以看到它更简单、更丰富。

在Windows 7中,许多GUI API不能直接用于Win32应用程序。相反,您需要WPF(Windows Presentation Foundation)来访问一些新的GUI元素,这意味着您必须用C#编写应用程序


当然,如果你针对Windows 2000的任何对象,那么WPF是毫无疑问的。

< P>如果你有一个非免费版本的VisualStudio可用,也许你最好的选择是使用MFC(微软基金会类)。这基本上是使用Windows API,但更多的是C++方式。

你应该看看(WTL)。

两年前我不得不做出类似的选择。我选择了Win32 API。掌握老派的做事方式是一种自豪感


顺便说一句,windowsapi有肮脏和设计糟糕的名声。我不同意这一点。我发现它非常灵活但一致(大约90%,因为向后兼容补丁确实有点污染它)。

我认为最简单的方法是
delphi
:使用gui设计器的多功能工具,不需要部署框架,对初学者很好

visualstudio
.net
是更具前瞻性的变体:健壮、广泛、良好的文档、伟大的社区


Qt
wxWidgets
是跨平台的解决方案。但我认为这是更复杂的方式。如果您渴望在ms windows以外的其他平台上运行程序,这是可以接受的。

您使用什么IDE?Visual Studio?虽然Qt很好,但它不能满足OP的“小”标准,因为它必须包含一堆Qt DLL或一个巨大的静态链接库。我同意我错过了“小”点。是否有Windows 7功能无法通过WinAPI获得的示例?我相信,通过WinAPI,您可以访问Windows的任何功能。简单的win32 api gui应用程序在Windows 7上不起作用?它肯定在Windows 7上起作用。但是,Win32应用程序不容易使用某些高级GUI功能(尤其是构建在DirectX上的所有WPF控件)。我有一个visual studioMFC的免费版本,非常可怕。它使用HACK到处,因为它是写在微软C++编译器有异常支持之前。从我读的基础上,ATL和我有免费的VC版本,所以它不会工作的API是任何东西都是一致的。例如,对于返回字符串,有多种不同的方法可用于在成功时返回字符串的长度或在失败时返回必要的缓冲区大小。看起来每个开发团队都有自己喜欢的方式,他们都被允许按照自己的方式来做。对于网络用户来说,学习win32太难了。但至少它是windows的纯本地方式。