针对Mac/Unix开发人员的MS Windows编程建议 我在Python、C和C++中有几年编写UNIX命令行工具(没有GUI体验)的经历,最近才跨过GUI世界(COCOA和IOS)。我已经学习了很多objective-C,并且开始了解cocoa MVC是如何工作的。然而,我正在开发的一个应用程序需要Windows版本,我想知道如果我完全没有Windows开发经验,该从哪里开始呢 我想用Visual C++ 2010 Express作为我的开发平台(因为它是免费的,因为我不需要学习C++)。我的应用程序相对简单,只有两个窗口,大部分时间都在后台运行。但是它需要与OS(Load DLL等)和在线服务器(HTTP方法)进行通信,我不确定VisualC++快照版是否能访问所需的API。Windows窗体应用程序是否足够?我走错方向了吗?我需要学C#吗?如果你需要更多的“低级”的东西,你可以用C++来做得更好。加载DLL(即libs)很简单(pragma comment lib…),就像加载纯HTTP传输和通信一样

针对Mac/Unix开发人员的MS Windows编程建议 我在Python、C和C++中有几年编写UNIX命令行工具(没有GUI体验)的经历,最近才跨过GUI世界(COCOA和IOS)。我已经学习了很多objective-C,并且开始了解cocoa MVC是如何工作的。然而,我正在开发的一个应用程序需要Windows版本,我想知道如果我完全没有Windows开发经验,该从哪里开始呢 我想用Visual C++ 2010 Express作为我的开发平台(因为它是免费的,因为我不需要学习C++)。我的应用程序相对简单,只有两个窗口,大部分时间都在后台运行。但是它需要与OS(Load DLL等)和在线服务器(HTTP方法)进行通信,我不确定VisualC++快照版是否能访问所需的API。Windows窗体应用程序是否足够?我走错方向了吗?我需要学C#吗?如果你需要更多的“低级”的东西,你可以用C++来做得更好。加载DLL(即libs)很简单(pragma comment lib…),就像加载纯HTTP传输和通信一样,windows,winforms,visual-c++,programming-languages,development-environment,Windows,Winforms,Visual C++,Programming Languages,Development Environment,所以,VC++和windows窗体就足够了,它是“非常c++” 您可以访问所有全局API,并且加载特定的API(如HTTP)只需要两行:一个包含WINET头,另一个是LIB(LIBS实际上是引用)到DLL。 < P>如果您走C++快速道,则需要单独安装Windows SDK,并设置为VisualStudio使用它。你不能使用MFC 然而,我建议使用C#,因为这感觉就像是把小玩具砖放在一起。易于调试和维护。C#的问题在于,它有太多的库函数,以至于你不可能知道你想要的是不是已经对一个函数进行了修改。

所以,VC++和windows窗体就足够了,它是“非常c++”


您可以访问所有全局API,并且加载特定的API(如HTTP)只需要两行:一个包含WINET头,另一个是LIB(LIBS实际上是引用)到DLL。

< P>如果您走C++快速道,则需要单独安装Windows SDK,并设置为VisualStudio使用它。你不能使用MFC


然而,我建议使用C#,因为这感觉就像是把小玩具砖放在一起。易于调试和维护。C#的问题在于,它有太多的库函数,以至于你不可能知道你想要的是不是已经对一个函数进行了修改。但这就是为什么我们在这里:-)如果你觉得你想做的事情应该已经存在,那么就提出一个问题。C#缺少的一个显著特性是zip归档(它有一些类似的功能,但不完全相同)。对于ZIP,您可以使用公共图书馆,如或。

您考虑过使用AdobeAIR吗?它允许您在Mac、Linux、Windows、iOS等平台上部署。自2.0以来,与本机进程通信并启动本机进程已成为可能,最新的2.5 SDK可以针对Android操作系统和电视。根据您的经验,您应该能够立即学习ActionScript3/MXML

此外,还有一些免费的IDE可用于Flex和AIR SDK。或者,如果您是学生或低收入开发者,您可以从Adobe获得一份免费的Flash Builder 4:



编辑:我认为在iPhone上部署AIR应用程序需要Flash Professional CS5,其中包括用于iPhone的packager选项。同时,我也读到AIR和其他iOS交叉编译器的速度非常慢,因此最好是在Objective-C for iOS中进行本机开发。

如果我是你,我就不会这么快进入一个全新的API。您考虑过在Windows上使用Python吗?我看到的大多数Python软件包也可用于Windows,因此您会感到宾至如归。如果你需要一些GUI,你可以选择wxPython,pyGTK或者类似的东西


对于Windows特定的内容,您始终可以使用ctypes。特别是如果它们和DLL加载一样简单。

< P>如果你已经对C++有了满意的结果,VisualStudioC++快车应该适合你。考虑到你没有制作复杂的GUI,你甚至不需要去浏览托管代码——C++快件,这样你就可以创建合适的C++控制台和GUI应用程序。您也不需要安装平台SDK——它是VS C++ Express的一部分。

不被管理C++,您将能够在不同项目之间共享源文件。托管C++,尽管C++中有C++,但它是一种不同的语言,如果同时处理ISOC++.P/>,它将是一件烦人的工作。 --

注:本机Windows API是一个C API,而不是C++框架。因此,它没有在一个连贯的框架中提供一组丰富的类来处理。另一方面,虽然它很大,但实际上很容易使用

另外:鉴于您已经熟悉Mac开发,有一个名为CFLite的LGPL(iirc)包构建在windows上,它实现了Objective-C Cocoa api的基础C api

如果您使用它的Abstraticons,您可以在windows和Mac(以及其他平台)之间共享大部分代码

其他C++ IDE,你可能要考虑:

  • 代码::块
  • QT创建者

两者都可以配置为使用GCC到windows的MINGW端口。

我考虑过跨平台开发(Qt、wxWidgets等),但因为这个应用程序太小(在没有任何Objective C经验的情况下,开发Mac版本需要几个月(2-3小时/周)我决定用我已经熟悉的语言(在本例中是C++)使用Windows IDE编写它可能会更快。当我进入跨平台开发时,我可能会考虑Adobe Air。C++使用Express将这些片段放在一起是唯一的缺点吗?使用C++和.c++的优点是.NET是一个数量级更容易使用C++。我不知道C++,NET,从来没有使用过这个组合,它对我来说并不自然。WiFrm和C++不是BFFS。大多数开发人员在C语言中使用他们的应用程序的UI端,并使用C++来实现逻辑方法。如果您希望在不使用跨平台解决方案的情况下真正复制XCode/Interface Builder的体验,C#和WinForms确实是您的最佳选择。一位经验丰富的Objective-C程序员在用C#编写了几天的代码之后,是否会对内置库的广泛性留下深刻印象,这是值得怀疑的。我曾经考虑过使用Python。在里面