适用于Mac / Unix开发人员的MS Windows编程建议

时间:2010-11-14 11:23:52

标签: windows winforms visual-c++ programming-languages development-environment

我在python,C和C ++中编写Unix命令行工具(没有GUI经验)方面有几年的经验,并且最近才进入GUI世界(仅限Cocoa和IOS)。我已经学到了很多目标-C并且我开始理解可可MVC是如何工作的。但是,我正在开发的其中一个应用程序需要一个Windows版本,我想知道一个好的起点是什么,我绝对没有Windows开发经验。

我在考虑使用Visual C ++ 2010 Express作为我的开发平台(因为它是免费的,因为我不需要学习C ++)。我的应用程序相对简单,只有两个窗口,大部分时间都在后台运行。然而,它需要与OS(加载DLL等)和在线服务器(HTTP方法)进行通信,我不确定Visual C ++ Express版是否允许我访问所需的API。 Windows窗体应用程序是否足够?我是以错误的方式来做这件事的吗?我需要学习C#吗?任何建议将不胜感激。

5 个答案:

答案 0 :(得分:3)

如果您已经对正确的c ++感到满意,那么Visual Studio C ++ express应该适合您。鉴于您没有制作复杂的GUI,您甚至不需要深入了解托管代码 - C ++ express允许您创建适当的c ++控制台和GUI应用程序。您也不需要安装平台SDK - 它是VS C ++ express的一部分。

不是托管C ++,您将能够在各种项目之间共享源文件。托管的c ++,尽管名称中有c ++,但实际上是一种不同的语言,如果你同时处理iso C ++会很烦人。

-

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

另外:鉴于您已经熟悉Mac开发,有一个名为CFLite的LGPL(iirc)软件包,它构建在Windows上,并实现了支持Objective-C Cocoa API的C api。

如果您使用它的抽象,您可以在Windows和Mac(以及其他平台)之间共享更多的代码。

您可能需要考虑的其他C ++ IDE:

  • 代码::块
  • QT Creator

这两个都可以配置为使用GCC的MINGW端口到窗口。

答案 1 :(得分:2)

如果你需要更多“低级”的东西,你会比c#更好地使用c ++。加载dll(即libs)很简单(pragma comment lib ...),纯HTTP传输和通信也是如此。

因此,带有Windows窗体的VC ++就足够了,它就是“非常c ++”。

您可以访问所有全局API,并且加载像http这样的特定api只需要两行:一行包含wininet标头,另一行包含lib(libs实际上是对dll的“引用”)。

答案 2 :(得分:1)

如果您采用C ++ Express方式,则需要单独安装Windows SDK,并将其设置为Visual Studio以使用它。你不能使用MFC。

然而,我会建议使用C#,因为感觉就像把小积木放在一起。更易于调试和维护。 C#的问题在于它有如此多的库函数,如果你想要的是函数,你就不可能知道它们。但这就是为什么我们在这里:-)如果你觉得你想要做的事情应该已经存在,那就问一个问题吧。 C#缺少的一个值得注意的特性是zip存档(它有类似的东西,但不完全相同)。对于拉链,您可以使用公共库,例如SharpZipLibDotNetZip

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

您是否考虑过接近Adobe AIR?它允许您在Mac,Linux,Windows,iOS等上进行部署,因为2.0和最新的2.5 SDK可以针对Android操作系统和电视进行通信并启动本机进程。根据您的经验,您应该能够立即获取ActionScript3 / MXML。

此外,还有一些可以与Flex和AIR SDK一起使用的免费IDE。或者,如果您是学生或低收入开发人员,您可以从Adobe获得免费的Flash Builder 4副本:http://www.adobe.com/devnet-archive/flex/free/


编辑:我认为在iPhone上部署AIR应用程序需要Flash Professional CS5,其中包括用于iPhone选项的打包程序。与此同时,我已经读过AIR和其他适用于iOS的交叉编译器非常慢,因此最好在Objective-C for iOS中进行原生开发。