你好,我是来自php的c++新手。虽然我不是一个绝对的新手,这意味着我已经使用oop php和sql编写了大型数据库驱动的应用程序,但我想知道使用c++创建独立windows应用程序的一般过程是什么,就像模式、APIs编译等一样……
编辑:就GUI而言,你会如何使用像firefox这样的可视化界面呢?您如何创建外观,因为它看起来不太像visualc++中的AWT库?
发布于 2009-05-06 00:41:42
我认为你真的应该拿一本Charles Petzold的Programming Windows 5th Edition来帮助你了解很多这些背景信息。
发布于 2009-05-06 00:56:40
Microsoft库:
在非托管C++中,您可以使用原生ATL、MFC或Win32 /WTL。
原生Windows是OSes的Win32家族公开的C风格方法的集合。这些API通过操作窗口和消息循环来工作。您可以在MSDN Windowing部分开始阅读有关Win32的内容。
MFC是一个C++类库,它为Win32 API提供了丰富的面向对象的包装器。它将Win32窗口抽象为CWindow类,将消息循环抽象为CMessageMap。你可以在MSDN上阅读更多关于MFC的内容。
ATL/WTL是一个轻量级的C++模板库,它最初是COM的C++包装器,后来采用了一些来自MFC (因此共享相同的类名)的思想来支持Win32窗口。ATL窗口支持后来被拆分成WTL,然后作为开源发布。有关ATL窗口支持的文档,请参阅MSDN上的ATL Window Classes部分。
在托管C++中,您可以使用WinForms或WPF。虽然它们的文档和示例严重偏向于C#和VB.Net,但它们在MSDN上都有相当全面的介绍。如果你想探索这些UI平台,我个人也建议你看看C#。
你需要用到的:
当然,首先需要一个C++编译器。:-)
要使用Win32 API,您只需要Windows SDK和可选的Visual C++ Express。
要使用MFC和ATL,您需要一个Visual Studio专业版或更高版本。可视C++速成版中不包括ATL和MFC。(ATL/MFC可能包含在WIndows软件开发工具包或其他我不知道的免费产品中。)
WTL8.0以free download的形式提供。您也可以从Source Forge WTL project获取WTL源代码。
要使用WinForms或WPF,您需要最新的.Net framework (好吧,技术上您需要任何.Net框架:-),还可以选择Visual C#/VB.Net Express。我不确定Visual C++速成版是否支持托管C++。
第三方选项:
有几个第三方C++库可以包装/抽象原生Win32 API。它们中的一些足够抽象,不仅可以为Windows开发UI,也可以为其他平台开发UI。据我所知,Qt和wxWidgets是一对,但从未使用过。
发布于 2009-05-06 00:26:36
我认为你的问题太宽泛了。试着把它分成更小的块,比如windows上GUI编程入门的问题,模式的问题,形成API的问题等等。
https://stackoverflow.com/questions/827500
复制相似问题