65
|
John M Gant aman_novice · 技术社区 · 15 年前 |
1
66
这取决于你的需要。 使用clr将为您提供最具表现力的库集(整个.NET框架),代价是将可执行文件限制为要求在运行时安装.NET框架,并将您限制为Windows平台(但是,列出的所有4种技术都是仅限Windows的,因此平台限制可能是最少麻烦)。 然而,CLR要求您使用C++语言的C++/CLI扩展,因此,本质上,您需要学习一些额外的语言特性来使用它。这样做可以为您提供许多“额外功能”,例如访问.NET库、完全垃圾收集等。 ATL&MFC在这两者之间的选择比较棘手。我建议你去 MSDN's page for choosing 为了在他们之间作出决定。ATL/MFC的好处在于,您不需要.NET框架,只需要安装VC/MFC运行时即可进行部署。 直接使用win32可以提供最小的可执行文件,依赖性最小,但编写起来要做的工作更多。您有最少数量的助手库,所以您要编写更多的代码。 |
2
20
Win32是一种原始的、纯金属的方法。它很乏味,很难使用,而且有很多小细节需要你记住,否则事情会以相对神秘的方式失败。 MFC基于Win32为您提供一种面向对象的构建应用程序的方法。它不是Win32的替代品,而是一种增强功能——它为您做了很多艰苦的工作。 system.windows.forms(我假设您所说的clr)完全不同,但与MFC的基本结构有很大的相似之处。这是迄今为止最容易使用的,但需要.NET框架,这在您的情况下可能是或可能不是一个障碍。 我的建议是:如果你需要避免.NET,那么使用MFC,否则使用.NET(事实上,在这种情况下,我会使用C,因为它更容易使用)。 |
3
13
就C++而言,我将使用WTL。它是轻量级的,并且您几乎没有依赖性(如果有的话),这使得它易于装运和安装。当我的应用程序由一个可以在大多数Windows版本上运行的exe组成时,我发现它非常令人满意,但这可能不是你关心的问题。 如果你选择去.NET,那么C几乎肯定是你的选择。 更多关于WTL的信息: |
4
8
我很好奇为什么你会在C++中这样做。根据你的简短描述,C听起来是一个更合适的选择。 只是为了详细说明一下,看看你所描述的C++ CLR链接。最高级的答案注释(准确地说,我认为)C++适合于“内核、游戏、高性能和服务器应用程序”——没有一个能描述你在做什么。 MFC、ATL等将受到支持,从某种意义上说,是的,您将能够在未来的Visual Studio版本上编译应用程序,并在未来的Windows版本上运行它们。但是,在API或语言中没有像clr和c那样进行大量新开发的意义上,它们是不受支持的。 |
5
4
clr没有什么问题。像这里的其他人一样,我建议C++,但是既然你坚持C++,那么使用.NETFramework比使用ATL/MFC容易得多几千倍,如果你还不熟悉它们的话。 值得一提的是,如果你使用C++/CLR,那么你根本就没有真正使用C++。C++/CLR编译为CIL,就像C.我自己从来没有使用过它,但我相信它的目的是允许您编译遗留代码并使其容易地用于新的.NET代码,而不是允许新代码与旧的C++可执行文件一起工作。还有其他从.NET调用本机代码的方法,也许您应该研究一下。 |
Dev · CoCreateInstance方法有问题 7 年前 |
Yira · 如何自定义“数据链接属性”对话框中的“连接”选项卡? 7 年前 |
Sossenbinder · 如何将菜单栏添加到WTL对话框窗口? 8 年前 |
Paul · COM是WTL的要求吗? 9 年前 |