C++ 创建windows应用程序的最佳方法

C++ 创建windows应用程序的最佳方法,c++,api,sdk,C++,Api,Sdk,我一直在网上和PDF书籍中学习windows API,但我听说有人在使用sdk和visual studio程序。我该怎么办?我会创建API,但非常复杂。我会从学习API中受益吗?还是应该获得一个sdk或程序来为我编写代码?我有msc++e,但我认为它没有这些好处你肯定想使用Visual Studio而不是直接使用Windows SDK进行GUI编程。你可以先下载试用 如果你想要更简单的东西,你可以查看.NET编程,或者如果你想继续使用C++,那也很好,你可以使用直接的Win32 API或MFC编

我一直在网上和PDF书籍中学习windows API,但我听说有人在使用sdk和visual studio程序。我该怎么办?我会创建API,但非常复杂。我会从学习API中受益吗?还是应该获得一个sdk或程序来为我编写代码?我有msc++e,但我认为它没有这些好处

你肯定想使用Visual Studio而不是直接使用Windows SDK进行GUI编程。你可以先下载试用


如果你想要更简单的东西,你可以查看.NET编程,或者如果你想继续使用C++,那也很好,你可以使用直接的Win32 API或MFC编程。在大多数情况下,您可能不希望直接的Win32 GUI编程,也不需要MFC,但是如果您愿意,请考虑从Charles Petzold(Win32)或Jeff Prosise(MFC)购买一本书。

< P>尽管学习原始Windows API确实有其用处,我建议你学习像这样的工具包。

你的问题的最佳答案取决于很多事情

我已经开发了微软Windows平台的应用程序将近二十年了,我已经使用了直Windows API、Turbo Pascal、MFC、Borland C++ + Builder和Visual Basic。 我已经尝试了很多跨平台的工具包,包括wxWidgets和QT,它们肯定有自己的位置,是创建应用程序的绝佳选择,这些应用程序将在Windows以外的平台上运行

总的来说,如果你只想针对Windows平台(尽管如此),IMHO使用C#语言针对Visual Studio的.NET平台可能是你今天构建Windows应用程序的最简单、功能齐全的环境

您可以获得一套优秀的工具和丰富的文档,最重要的是,当您有问题时,可以利用大量经验丰富的程序员


net还支持C++和各种其他语言以满足您的需要。如果需要对Win32 API进行低级访问,可以直接使用pinvoke访问API。如果您需要更低级别的控制,您可以从.NET应用程序中引用托管或非托管DLL。

对于windows,SDK和Win32 API所指的内容基本相同。SDK是针对API所需的所有垃圾(这始终是“SDK”的含义)。在windows上使用非VC编译器(或交叉编译器)时,必须下载SDK才能编写win32程序

很少有情况下,针对Win32 API本身是有用的。您通常希望在更高级别上使用像MFC、WTL或WX这样的API(我包括WX,因为对于windows它实际上是Win32的包装器)。还有一些库自己做事情,只需自己绘制所有内容(所有由所有者绘制的窗口),如Qt、GTK等


如果您使用的是特定于windows的库,您仍然会偶尔接触Win32 API,但只接触其中的一小部分。您只需让这些部分出现,而不是真正尝试学习API本身,就可以节省大量时间。没有一个不疯狂或被折磨到提交的人会写出原始的Win32。

我知道越来越少的人会编写本机应用程序,尤其是在单一平台上,尤其是在Windows平台上。虽然显然仍然有这种需求,但我不确定我今天是否愿意投入大量精力来学习WindowsAPI的细节


我会看看类似的东西,让我使用网络工具。这是一个相当高的层次,它的速度足以让我做任何事情,它是开源的,并且是跨平台的(甚至是在网络上)。我见过一些应用程序(在Tianium之前)是以网页的形式编写的,它们也有自己的渲染和javascript引擎。

提到邪恶的MFC kludgy hack宏垃圾,我几乎会给-1分,因为它有很多bug,你最终写出来的大多是win32 direct。@Greg:没那么糟糕,但与.NET编程相比,两者都很难。作为一名多年的MFC程序员,我绝对推荐学习.NET而不是MFC。不是MFC太差,而是.NET好得多。@Avalanchis:同意Winforms和WPF在简单性和节省开发时间方面遥遥领先。@Michael Kohne:我不同意MFC不再得到真正的支持,也不认为它不应该被考虑。下面是关于VS 2010的C++和MFC新特性的一些链接。不必安装大型运行时环境仍有一些优点。例如,将一个应用程序编译成一个EXE(几乎可以在任何Windows系统上运行,而不需要任何附加文件)的能力仍然是一个非常强大的功能。QT是编写独立于平台的应用程序的绝佳选项。QT是编写应用程序的绝佳选项。