修改Mac OS X的旧Windows程序

时间:2010-01-21 09:30:22

标签: c++ macos

这个应用程序是在1998年为Windows编写的, 我喜欢使用这个程序,现在我想学习如何制作它 在Mac上工作,也许可以更改和添加功能,

问题是我不知道从哪里开始,我研究过C ++ php,javascript,但是真的不知道如何阅读这段代码。或从哪里开始。

谢谢你看看 http://github.com/klanestro/textCalc

来自http://www.atomixbuttons.com/textcalc/

  

什么是TextCalc?

     

TextCalc是一个组合   表达式计算器和文本   编辑。作为两者,它有几个   优于传统的优势   计算器。

     

1)您可以评估表达式   9 * 4-2 + 95-12只是你写的方式   他们在纸上。

     

2)除了你的评论,你可以发表评论   答案和表达。

     

3)您可以保存,重新加载,编辑和   打印结果和表达式。

     

4)你不需要写你的   以前在纸上回答   像你一样计算另一个表达式   可以留下以前的结果   编辑器。

     

5)您可以打开现有的文本数据   文件并对其进行计算。

     

6)您可以将表达式应用于许多人   数字一气呵成。例如,你   可以更改列表1 2 3 4 5到2 4   6 8 10乘以每个数字   2。

     

7)你可以求和,平均,转换成   十六进制等容易列出的数字。

     

编辑器能够解析   数字和字符串用double括起来   引用“”。数字将被着色   蓝色和字符串将显示为红色。   这使其成为编辑文件的理想选择   包含数字数据。

     

★✩

8 个答案:

答案 0 :(得分:3)

根据TextCalc网站上的截图和信息,我认为最好以Mac OS X service实现。您可以在“系统偏好设置”中分配热键以触发服务 - >键盘 - >服务。

实际上这很容易。您无需编写文本编辑器部分,它将在所有应用程序的所有文本区域中可用。您将获得用户选择的文本,您需要做的就是评估它。有一个内置的命令行工具bc,您应该可以将其委派给。

a guide to implementing services。您需要通读Cocoa intro material才能理解它。不过,这是一个很好的第一个项目。

在这种情况下,我认为没有任何理由尝试阅读原始应用的来源。你只需要知道你想要的行为。

答案 1 :(得分:2)

查看Stroustrup的“The C ++ Programming Language”第二章中的Calculator示例。

答案 2 :(得分:1)

看起来这个应用程序是使用MFC编写的,它是以Windows为中心的。翻译这个程序以使用不同的API(如Cocoa)将会有很多工作,并且需要熟悉MFC和Cocoa。当然,更不用说将C ++翻译成Objective-C所涉及的工作。

最好在虚拟机(如VirtualBox)或Wine下运行它。不幸的是,免费版本的Microsoft Visual C ++ 包含MFC,因此要修改此代码,您必须购买非免费版本的MSVC,或将程序翻译为“裸机”Win32 ,不使用MFC。

答案 3 :(得分:1)

该计划的核心部分(表达评估)取自Zoly Farkas撰写的this smaller program

所以我建议如下:

  • 学习目标C.
  • 作为练习,将Zoly Farkas的表达式评估移植到Objective-C,用作库或命令行。
  • 了解可可。
  • 作为练习,使用Cocoa为您的库创建图形界面。你不需要MFC。

应该很有趣! : - )

答案 4 :(得分:1)

我不建议使用MFC“移植”这样一个旧程序,但无论如何都不能在Mac上使用它。

相反,我建议创建一个新的空白应用程序的骨架,然后从旧代码中插入更多或更少的大片段。骨架可以使用适合的任何语言:C ++,Objective-C,real Basic。但由于重用的代码是C ++,因此最好使用C ++。

答案 5 :(得分:0)

代码看起来是用C ++编写的。 C ++可在Mac上使用。

代码依赖于MFC,如果OS X上没有该课程,那么你需要选择WxWidgetsQtFLTK等框架。适用于Mac和Windows。然后,您需要从MFC转换为新框架。

在此过程中,您将了解有关MFC的更多信息。

答案 6 :(得分:0)

为什么不在C#.NET中重写它并使用Mono在Mac上编译它?您可以使用包装器从c#重写Native Cocoa中的GUI部分。取决于你的计划,但这个程序听起来不像你要把它卖给公众所以L + F问题可能不是问题。

答案 7 :(得分:0)

如果您决定重新编写,我建议RealBasic。它有许多组件可以帮助缩短开发周期,您可以编译Windows,Mac和Linux程序。

易于学习和高效的平台。