2010-02-13 53 views
3

我將使用GUI在Windows操作系統上運行創建一個實用程序。什麼API/SDK用於此Windows應用程序?

它應該要求最少(或零!)量的其他庫,文件或DLL才能運行,因爲它將從安裝程序執行。因此,我不想使用.NET,因爲它需要用戶安裝.NET Framework。我今天知道,大多數Windows安裝系統都帶有.NET Framework,但在我的情況下,我無法確定。

該工具將...

  • 一些數據發送到一個網站,並 解析返回數據,
  • 蒐集一些硬件信息,如MAC地址, CPU類型和製造,硬盤序列號 號碼

我猜想原生的Win32 API可以用於上述所有的那些,但是不是與Win32混淆,而是喜歡r使用更開發友好的API或SDK。

在此先感謝。

+0

所以你想要一個沒有任何運行時組件的SDK ... – Eric 2010-02-13 17:14:12

回答

6

Win32 API是唯一的出路,當然也有標準的API - 用於在互聯網上發送數據時,您可以使用WinInet的.lib/DLL,以獲得關於MAC的信息,您可以通過使用IPHLPAPI使用GetAdaptersInfo .lib/dll(這裏是link關於如何使用它)的硬盤序列號,您可以使用kernel32.lib/dll使用GetVolumeInformation。對於CPU ID,你可能會考慮GetSystemInfomation

編輯:有一個C++代碼,但是你可以很容易地獲得從這個site的包裝不幸的是,WinAPI的是不容易的,沒有這樣的事情RAD與WinAPI的,但什麼你從中獲得的是輕量級的代碼,而不是依賴於SDK的框架,並將拖動的bug拖到你的應用程序中。

希望這會有所幫助, 最好的問候, 湯姆。

+0

+1同意,Win32 API是最輕量級的解決方案。這不是MS推薦的,但如果你準備接受你可能正在編譯(靜態)一個錯誤的MS VC庫,使用-MT而不是默認的-MD標誌。 – 2010-02-13 17:28:17

+0

我唯一關心的是Win32 API,我無法快速開發我的工具,因爲我需要爲網絡操作編寫一些基本代碼。任何建議一個很好的包裝? – frbry 2010-02-13 17:33:44

+0

@frbry:這裏有一個C++代碼,但是你可以很容易地從這個http://www.codeguru.com/cpp/in/internet/generalinternet/article.php/c3411/派生一個包裝器。不幸的是,使用WinAPI並不容易,沒有像WinAPI那樣的RAD,但是你從中獲得的是輕量級的代碼,而不是依靠SDK的框架...... – t0mm13b 2010-02-13 17:40:51

0

對於GUI,您可以使用MFC(靜態鏈接)構建應用程序,也可以使用基於HTML的對話框,您可以使用COM進行交互。 (甚至可以與由對話框顯示的頁面中呈現的JavaScript進行交互)。

3

如果你想要的是對外部文件或DLL的最小依賴,你可以用工具exe靜態編譯所有需要的DLL。然後你可以使用類似Visual C++的東西來開發這樣的工具。

0

對於您具體的要求,我覺得Win32 API是唯一的出路。

4

您可以靜態鏈接大多數C++ GUI庫 - 甚至是MFC。就我個人而言,我推薦WTL,因爲它非常輕巧,只有標頭。

+1

借調!使用WTL比使用原始Win32更容易(雖然它有助於瞭解一點Win32來填補空白)。 – undees 2010-02-13 18:11:38

0

使用MFC並靜態鏈接到它。不需要安裝運行時依賴關係。

2

WTL非常適合這種應用,我很驚訝更多的人不推薦它。你也可以靜態鏈接CRT和嘿presto - 沒有依賴和一個非常小的EXE。

1

Delphi(現在由Embarcadero公司)將完成這項工作,創建一個沒有依賴關係的.exe文件,它比原始Win32 API更容易使用。

如果您不喜歡Object Pascal,則可以改爲使用C++ Builder。

+0

謝謝,但我想我會堅持使用C++ :) – frbry 2010-02-18 09:42:51

相關問題