簡體   English   中英

Windows GUI編程 - C + SDK或C#+ Windows窗體

[英]Windows GUI Programming - C + SDK or C# + Windows Forms

我是一名擁有大量服務器代碼經驗的C程序員(AIX,HPUX,一些Linux)我需要為Windows(2000,XP,Vista,7)編寫一個GUI程序,它需要類似CAD的繪圖功能和大量數據輸入表格(這是一個專業的工程應用程序)。 多年前我使用Gupta SQLwindows(現在的Centura Builder)編寫了一些Win32代碼。 老板們已經下令它“必須”編譯代碼。 我的看法是C + SDK可以完成這項工作,但需要付出相當大的努力,C#+ Windows Forms將更有能力,但我有點擔心.Net框架要求。

根據您的經驗,您會建議什么?

如果.Net,哪個版本? 2.0,3.0,3.5 ??

我不熟悉Centura Builder,因此我不確定您之前的Windows編程體驗的抽象級別。 如果您選擇使用C / C ++和Win32的本機代碼路由,請務必購買Charles Petzold的Programming Windows副本。 閱讀本書的前幾章可以幫助您確定是否也想要使用本機代碼路由。

如果您選擇.NET Framework和C#,並且如果您不需要特定於版本3.5的功能(例如用於數據庫訪問的LINQ),我建議您選擇版本3.0。 它是Windows Vista上的內置組件,因此您不必使用程序安裝程序打包運行時,除非您必須支持Windows XP(您可能會這樣做,所以不要介意:)。 使用3.0版本,您將獲得Windows Presentation Foundation(代替Windows Forms或與Windows Forms一起使用),這為您提供了大量的圖形功能,而無需花費太多精力。 我不了解CAD,因此我不知道WPF是否會提供您需要的繪圖功能,但它可以提供一個很好的平台,您可以在其上編寫自己的繪圖程序。

編輯:我在第一次閱讀時錯過了您的Windows版本要求,尤其是Windows 2000要求。 我想你必須使用.NET Framework 2.0版和Windows Forms。 不過,我不得不問:通過將已有8年歷史的機器升級到更新更快的速度來提高工程師的工作效率,從而擺脫Windows 2000的支持要求,是否具有成本效益?

如果您要使用.NET路由,則必須使用.NET 2.0,因為.NET 3.0及更高版本僅支持Windows XP及更高版本(Vista,7,2003,2008)。

我個人不會滿足.NET框架的要求。 它是每台計算機上的一次性安裝,如果需要,可以通過Windows更新進行簡化。

如果你不想要.NET,Qt + C ++肯定是要走的路; 它肯定勝過C和Win32。 .NET仍然允許比Qt更快的開發。 Qt具有快速且易於部署(無.NET要求)的優點,並且使得可移植性更容易(如果您想要移植到Linux或Mac)。

如果你必須使用本機代碼那么我強烈推薦來自Codegear / Embarcadero的RAD Studio ,如果你已經熟悉C / C ++,它是Delphi(從Turbo Pascal演化而來的面向對象語言)和C ++ Builder附帶的工作室產品。然后你可以容易地把它拿起來。 兩種語言共享的可視化組件庫是可擴展的,功能強大的和RAD。

如果你能夠使用托管代碼,那么使用Winforms的C#很容易使用,WPF可能是一個更好的UI選擇,但它具有更陡峭的學習曲線。

根據類似CAD的繪圖的復雜性要求,我會使用C#+ Windows Forms,或者更優選的是C#+ WPF。

WPF會使繪圖變得更加清晰,比在GDI中嘗試更清晰。 如果您要進行3D“繪圖”,尤其如此,因為您可以直接在WPF中執行大量(簡單)3D對象。 C#將使您的GUI編程比直接使用Windows API(甚至是MFC)在C / C ++中嘗試更高效。

就個人而言,我認為.NET要求很少,但這完全取決於組織中的權力......

如果它必須是編譯代碼而不是我推薦的MFC的WTL,但使用C#+ WinForms或WPF會更快(在開發成本方面)。

你可以用C或C ++ / Win32 api做任何事情
(類似CAD的繪圖的Win32示例在MSDN中..)

暫無
暫無

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

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