簡體   English   中英

修改Mac OS X的舊Windows程序

[英]Modifying old Windows program for Mac OS X

這個應用程序是在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)您可以一次性將表達式應用於多個數字。 例如,您可以通過將每個數字乘以2將列表1 2 3 4 5更改為2 4 6 8 10。

7)您可以輕松地將總和,平均值,轉換為十六進制等數字列表。

編輯器能夠解析用雙引號“”括起來的數字和字符串。 數字將顯示為藍色,字符串將顯示為紅色。 這使其成為編輯包含數字數據的文件的理想選擇。

★✩

根據TextCalc網站上的截圖和信息,我認為這最好是作為Mac OS X服務實現的 您可以在系統偏好設置 - >鍵盤 - >服務中指定一個熱鍵來觸發您的服務。

實際上這很容易。 您無需編寫文本編輯器部分,它將在所有應用程序的所有文本區域中可用。 您將獲得用戶選擇的文本,您需要做的就是評估它。 有一個內置的命令行工具, bc ,你應該能夠委托給它。

一個實施服務的指南 您需要閱讀Cocoa介紹材料才能理解它。 不過,這是一個很好的第一個項目。

在這種情況下,我認為沒有任何理由嘗試閱讀原始應用程序的來源。 你只需要知道你想要的行為是什么。

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

看起來這個應用程序是使用MFC編寫的,MFC是以Windows為中心的。 翻譯這個程序以使用不同的API(如Cocoa)將會有很多工作,並且需要熟悉MFC和Cocoa。 當然,更不用說將C ++翻譯成Objective-C所涉及的工作。

您可能最好在虛擬機(如VirtualBox)或Wine下運行它。 不幸的是,微軟的Visual C的免費版本++ 包括MFC,所以要修改這個代碼,你就必須要么購買MSVC的非免費版本,或翻譯程序“裸露的骨頭” Win32中,不使用MFC。

該計划的核心部分(表達評估)取自Zoly Farkas編寫的這個較小的程序

所以我建議如下:

  • 學習目標C.
  • 作為練習,將Zoly Farkas的表達式評估移植到Objective-C,用作庫或命令行。
  • 學習可可。
  • 作為練習,使用Cocoa為庫創建圖形界面。 你不需要MFC。

應該很有趣! :-)

我不建議使用MFC“移植”這樣一個舊程序,但無論如何你都無法在Mac上使用它。

相反,我建議創建一個新的空白應用程序的骨架,然后從舊代碼中插入更多或更少的大片段。 骨架可以使用適合的任何語言:C ++,Objective-C,real Basic。 但由於重用的代碼是C ++,因此最好使用C ++。

代碼看起來是用C ++編寫的。 C ++在Mac上可用。

該代碼依賴於MFC,如果在OS X上沒有該課程,那么你需要選擇一個可以在Mac和Windows上使用的WxWidgetsQtFLTK等框架。 然后,您需要從MFC轉換為新框架。

在此過程中,您將了解有關MFC的更多信息。

為什么不在C#.NET中重寫它並使用Mono在Mac上編譯它? 您可以使用包裝器從c#重寫Native Cocoa中的GUI部分。 取決於你的計划,但這個程序聽起來不像你要把它賣給公眾所以L + F問題可能不是問題。

如果您決定重寫它,我建議使用RealBasic 它有許多組件可以幫助縮短開發周期,您可以編譯Windows,Mac和Linux程序。

易於學習和高效的平台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM