2012-06-15 56 views
-2

我必須做一個模擬器。功能如下所述:一個C代碼模擬器的GUI和後端選擇

輸入:不變的Ç代碼

功能:編譯和運行那些碼和產生的輸出。每個C代碼可能都是變量。爲所有這些變量提供輸入函數(基於時間)。因此,如果輸入的c代碼文件有一個簡單的加法器int add(a,b)/ * a和b隨指定的fn隨時間變化。所以,在t = 0 a = 1時,t = 4 b時b = 2可能變爲6等等* /我必須在diff時間運行代碼並生成輸出。檢查那些o/ps也是。對於所有這些目的,我也需要一個GUI。

需要後端和Gui工具的建議。

P.S:我的研究告訴我C後臺與GTK的GUI是一個可行的解決方案,但GTK太冗長乏味。我對Qt/C++感到困惑,因爲它可能不適用於c後端。 C++後端對我來說很難導入和運行這些輸入代碼(extern不能始終工作)。我還研究了C#的GUI和與dll文件的鏈接,但在許多博客中也提到它不太可行。有什麼建議麼?謝謝。

P.P.S請僅提供開源和非許可工具。

+0

通過不可改變,你的意思是他們在設計你的模擬器的時候是已知的? – unkulunkulu

+0

在這個你目前的時間你的問題是非常廣泛的。任何答案只會幫助你。如果你有一個具體的問題,你應該問。請限制你的範圍。 「原樣」的問題並不能解釋「可行」解決方案無法使用的原因。 –

回答

0

C++可以與任何C庫或「代碼」輕鬆地進行接口,所以這不是您的擔心。

我會建議使用Qt。它配備了一個不錯的免費IDE:Qt Creator。它提供經常超過GTK的高級功能。唉,GTK庫生態系統非常「可破解」 - 底層對象模型允許各種各樣的創造性使用和濫用,但是恕我直言,學習曲線非常淺 - 需要更長的時間才能「完全」理解GTK,而不是Qt 。

這只是因爲GTK的底層底層庫提供了很多由C++語言接管的功能,或者僅僅隱藏在Qt的視圖中。我發現GTK的基礎更加靈活,但它似乎都是解決問題的解決方案。 Qt的/ C++的更簡單,更靈活的對象模型同樣適用,並且更容易學習,因爲它少得多。

從投資你的時間的角度思考。學習精通C++,可以移植到僅使用相同語言的其他項目。學會精通glib只會幫助你使用專門使用glib的C項目,而我認爲比C++項目少得多。

有時候,太多的好東西是壞事,對我來說,GTK就是這種情況。這是一個圖書館集合,它的底層功能很低,但對於更高層次的抽象,它似乎很輕鬆。不必介意,各個庫的設計都有略微不同的指導原則,實質上是一個鬆散的集合。理論上這對組件的解耦是很好的,但是使得學習變得更加困難,因爲組成GTK的各種庫中的常見設計元素幾乎沒有。

相比之下,Qt幾乎是一個單一的,統一的大型庫,可以分爲多個模塊,您可以選擇不使用。

PS。大多數人錯誤地使用「陡峭的學習曲線」來表示某些東西很難學。學習曲線顯示「知識」與時間的關係。如果它很陡峭,那意味着你正在快速學習。淺的意味着你在慢慢學習。