需要帮助理解c++;一个Java家伙的windows 我正在学习如何在C++中开发Win32应用程序。我正在使用VisualStudio和windows.h,我过得很不愉快。 我来自Java和Android,在那里你可以创建一个像MainWindow或OptionsWindow这样的类,然后在行为中编写代码,并在你想要的时候实例化它们 但是现在我在C++,我迷路了。 我在windows.h库中看到的所有示例都是代码,其中Main在窗口中是WinMain。所以,我的问题是:有没有什么方法可以让你为不同的窗口编写不同的类,并在需要时实例化它们?差不多 OptionWindow ow = new OptionWindow

需要帮助理解c++;一个Java家伙的windows 我正在学习如何在C++中开发Win32应用程序。我正在使用VisualStudio和windows.h,我过得很不愉快。 我来自Java和Android,在那里你可以创建一个像MainWindow或OptionsWindow这样的类,然后在行为中编写代码,并在你想要的时候实例化它们 但是现在我在C++,我迷路了。 我在windows.h库中看到的所有示例都是代码,其中Main在窗口中是WinMain。所以,我的问题是:有没有什么方法可以让你为不同的窗口编写不同的类,并在需要时实例化它们?差不多 OptionWindow ow = new OptionWindow,c++,winapi,visual-studio-2013,C++,Winapi,Visual Studio 2013,或者我应该在WinMain中编写每个窗口所需的所有代码,然后使其可见 非常感谢你的帮助。谢谢 Winapi使用普通的C接口,因此没有可用的预制类 如果您想在C++中编写.NET应用程序,可以使用WPF(Windows演示基础)或WHFALSE作为HuSEEIN在他的评论中写的。 如果要开发本机win32/64应用程序,必须使用库/框架。微软也有,但我觉得它们很复杂,因此不喜欢它们 您还可以查看跨平台框架,如qt、gtk或wxWidgets。但是,您必须小心许可(Qt可作为GPL、LGPL或商业许

或者我应该在WinMain中编写每个窗口所需的所有代码,然后使其可见


非常感谢你的帮助。谢谢

Winapi使用普通的C接口,因此没有可用的预制类

如果您想在C++中编写.NET应用程序,可以使用WPF(Windows演示基础)或WHFALSE作为HuSEEIN在他的评论中写的。 如果要开发本机win32/64应用程序,必须使用库/框架。微软也有,但我觉得它们很复杂,因此不喜欢它们


您还可以查看跨平台框架,如qt、gtk或wxWidgets。但是,您必须小心许可(Qt可作为GPL、LGPL或商业许可证,所以您必须购买开发者许可证,也可以将您的代码放在GPL下或遵照LGPL)。

< P>如果您承诺只使用C++,我建议使用VS2013创建C++ /MFC应用程序。微软基金会类(MFC)是一个框架,它隐藏了创建和操作Windows的大量繁琐工作。它比原始的Win32编程更容易开始

MSDN提供了许多帮助您入门的方法。我还发现这对于MFC编程来说是合理的。如果您搜索MFC编程,您应该会找到大量的信息/代码/示例

由于您使用的是Visual Studio 2013,因此评论员的一条建议不适用于您。有人建议您可以使用C++/CLI(实际上是.NETC++)。C++/CLI通常是一个垫片,被用作C++开发人员迁移到C++的网关。对于C++/CLI应用程序,Microsoft不再通过IDE支持Winforms。也不再有用于C++/CLI的Winforms应用程序项目。如果您有VS2010,winforms可以通过IDE获得

如果你正在编写一个GUI,不想用C++来使用MFC,我建议跳到C。找一本关于这个主题的好书。微软有一个面向迁移到C#的Java开发人员的解决方案

根据OPs的评论,他希望做更多的程序化工作。有一个解决方案是由Microsoft创建的,现在仍然由开源社区维护。该选项是Windows模板库(WTL)。我个人仍然将其用于轻量级应用程序,因为我不想增加MFC的开销。它是一组位于顶部ATL(活动模板库)的Windows模板。ATL最初是用一组C++模板设计的,用COM.</P>构建可重用的二进制组件。
您可以将WTL添加到VS2013(它不再是标准Visual Studio的一部分)。您可以从下载WTL。安装不是直截了当的,但只要安装正确,它就会工作。

为什么不从wpf或winforms开始呢?嗨!谢谢你的回答。我愿意接受任何建议。我还没有找到那种选择。windows.h的利弊?我之所以使用它,是因为VisualStudio的默认方法。不要仅仅基于一些例子和java的知识开始C++编写。你会把内存泄漏、效率低下和沮丧搞得一团糟。C++和java很不一样。获得一本书,如编程——原理和实践,用C++和C++学习第一。那么你就可以正确使用C++了。最后要记住的是:在C++中,如果你使用的是原始指针,你做得不对。谢谢你的建议。我知道C++的方法与java完全不同。幸运的是,我知道C中的程序,所以我知道指针的基本知识等。我也用一本书,叫做跳转到C++。谢谢你的回答。我要看看那些。我确实研究过Qt,但我总是喜欢自己编写所有代码。我现在明白了,这不再是一个选项。谢谢。我认为“复杂”可能是一个视角问题。我很乐意使用它们(我也做C#WPF、QT、GTK开发)MFC至少没有许可问题,而且有大量关于这个主题的文档和书籍。它与作者选择的C++语言相结合。我应该指出,在VS2010之后,如果您编写C++/CLI,甚至连Winforms都不能通过IDE使用,因为Microsoft已经明确表示C++/CLI是用于互操作解决方案的,而不是功能完整的.NET language.HI!正如你所说,我刚刚发现以前的答案在VS13上不再有效。跳转到C#不是一个选项。我正在准备自己的C++专业学位。对我来说,理想的事情是拥有Java中的控制权,自己编写大小、位置等,并且能够像任何其他对象一样实例化窗口。我反对开发GUI。感谢您的回答MFC可以在没有GUI的情况下以编程方式完成。GUI只是让它更容易。MFC窗口功能封装在C++ MFC类中。我承认这是一个与Java截然不同的范例,我已经用一些您可能感兴趣的WTL信息修改了我的答案。