我已经写了一年左右的C++控制台/CMD-line应用程序,现在想进入Windows GUI应用程序领域。 对于那些已经走过这条路的人,你们能给我什么建议/技巧?例如:好的阅读材料、教程、方法策略等等...
我知道这是一个非常广泛的问题,但我真的不知道该从哪里开始,因此也不知道如何正确地提出这个问题。
我已经写了一年左右的C++控制台/CMD-line应用程序,现在想进入Windows GUI应用程序领域。 对于那些已经走过这条路的人,你们能给我什么建议/技巧?例如:好的阅读材料、教程、方法策略等等...
我知道这是一个非常广泛的问题,但我真的不知道该从哪里开始,因此也不知道如何正确地提出这个问题。
我强烈推荐使用Qt Libraries,理由如下:
老实说,我曾经在本地开发Windows软件上浪费了几年时间,而我本可以更加高效。
对于C++,你有两个选择,本地或管理。
对于本地开发,我的团队(在微软的Windows部门)使用Windows Template Library。它对我们非常有效。
你应该学习Win32的基础知识以及窗口工作方式。经典的著作是Programming Windows®
对于管理开发,你可以使用C++和Windows Forms。但是,Windows Forms已被Windows Presentation Foundation (WPF)所取代。
对于Windows GUI,如果您想直接使用API,那么要经常参考MSDN。
我学习基础知识最喜欢的资源是theForger's教程,但还有数百本书和其他网站可供选择。
我已经很久没有在Windows GUI上使用C++了,我的建议是除非你有非常好的理由,否则尽量避免在Windows GUI中使用C++。如果你需要一些性能,C#已经足够满足90%的情况,如果你需要更强大的功能,请编写一个C++ dll来处理性能关键的部分,并从Windows Forms或WPF应用程序中调用它。这将节省你大量的时间。当然,如果你有不同的意见,我完全尊重。
不要只局限于WPF、VC++或Qt,您还可以尝试以下几个库:
这里有一个使用Openframeworks开发Gui的活跃项目:
http://www.syedrezaali.com/blog/?p=2172
第一个问题是,您想在C++中开发自由、开源、个人使用或商业应用程序吗?
第二个问题是,您想为Windows、Mac、Unix或Linux开发还是这些平台都要开发,甚至是移动平台?
如果你是Windows用户,并且只想为Windows开发,而不是跨平台,那么你可以选择Win32 API。尽管学习Win32 API比较困难,但它可以让你完全控制机器。相信我,没有其他工具可以提供对机器的完全控制。如果你因为任何原因不喜欢Win32 API,可以选择MFC,这是微软的另一种技术,但它不是免费的,而且现在已经过时并且受到的关注较少。如果你决定使用.NET平台进行开发,你可以选择C++/CLI,这是一个扩展了C++语言用于开发.NET应用程序的工具。.NET提供类型安全、面向对象编程和内置垃圾回收器,为你提供了与Windows和x86或x64机器相关的所有API的一个包。 .NET有自己的世界!微软已经决定将.NET移植到其他操作系统中,Mono项目就是一个例子...你可以使用.NET开发几乎所有类型的应用程序。你的C++知识足够好,可以编写软件系统吗?
实际上,如果你对C++的了解不够深入,不理解面向对象编程方法,如封装、类、接口、类型、编程模式等,就无法充分利用任何工具包。 不要忘记,每个工具包、框架或API都是用某种编程语言实现的。如果你非常了解这种语言,就可以很好地使用工具包。我想你会明白我的意思。