2010-01-03 82 views
0

我正在開發C語言編程的win32應用程序。這是我對本地win32 apis的第一次體驗,它們看起來完全殘忍無法讀取(simple window)。C win32封裝器

我想知道是否有一個我可以使用的整個API的包裝,而不必用這些東西粉碎我的頭。

其他框架/庫不會做,因爲我想使用Windows的本機api。

謝謝!

+2

有大約有Win32的寫了很多很多* *包裝。但不是'C'。 Win32 == C. – 2010-01-03 02:04:32

+2

庫的包裝器不需要使用其他語言 – 2010-01-03 02:17:21

+1

Erm,它的確如此。沒有人寫過'C'包裝afaik。你能成爲第一個。完成後,你會知道Win32的下拍功能。 – 2010-01-03 12:14:50

回答

1

其他GUI框架/庫不會做,因爲我想使用Windows的本機api。

如果您想使用Win32 API ...您必須使用Win32 API。你需要在Petzold的副本上(http://www.charlespetzold.com/pw5/),然後從那裏出發。你發佈的例子並不是非常複雜,一旦你看到了代碼的解釋,你可能會不那麼擔心。

如果您需要自定義任何東西,MFC/ATL/Qt/wxWidgets都將允許您獲取控件的句柄。

是否有任何特別的原因想要使用本機Win32 API?

+0

是的,我希望以非常*輕*的大小分發可執行文件。 – 2010-01-03 02:02:15

+0

我會得到Petzold的副本並開始閱讀。你使用什麼編譯器?如果您使用的是VC2005/2008,則需要靜態鏈接運行時(增加大小),或者確保事先分配VC2005/2008可再發行組件。 如果您要介紹先決條件(即VC redist),爲什麼不需要.NET Framework並使用.NET? .NET二進制文件可能非常小,因爲它們大部分是元數據和代碼,.NET JIT編譯器負責處理更大的內容。 另外,如果您靜態鏈接(如上所述,二進制大小的增加),你可以做C++和靜態鏈接MFC? – 2010-01-03 02:13:00

+0

實際上,如果將項目配置爲編譯爲C,並省略鏈接到標準庫,則可以消除靜態鏈接或可再發行組件的需要。當然,如果您習慣使用C標準庫函數,則需要查找Windows API等價物。 – 2010-01-05 15:12:20

0

.Net框架上的WinForms是一個很好的(幾乎全面的)WinPrice API API的包裝器。

在C/C++的世界中,ATL API是一個(有點)更高水平的替代使用原料的API

1

一旦理解了代碼其不那麼複雜;主要問題是你需要自己處理所有的鍋爐板材,哪些是你損失更多時間的地方。我不知道你的情況,但會使用像MFC這樣的框架來接受嗎? C中的同一個窗口在MFC中相對比較容易,因爲它與shown here一樣,它隱藏了一些樣板代碼。還有一些跨平臺選項,如Qt4,但不確定這些選項是否可接受。

1

如果你使用純C,那麼沒有一個常見的框架(MFC,ATL等)可以幫助你。可能還有其他圖書館(TCL?),但它會相當邪惡。

即使在今天,並非所有的在線教程都利用了Message Crackers in Windowsx.h。確保你熟悉這些,他們會爲你節省一些痛苦,並幫助你的應用程序更易於遷移。

0

Rad Studio,其中包括C++ Builder和VCL可以是一個不錯的選擇