2012-01-15 64 views
1

我正在教自己C(來自Java)。我非常欣賞這種語言,我正在學習的主要原因之一是,我可以利用內置於Java中的JNI功能在必要時編寫本機代碼。我的問題主要是關於Windows API。我可以使用C的函數和功能嗎?Windows API可以使用C嗎?

Windows API是否與純C代碼兼容,還是包含只能由C++代碼使用的類和類?另外,如果我在Windows計算機上將共享庫編譯爲(lib.sl NOT lib.dll),它是否可以在另一臺計算機(Mac/Linux)上運行?

+4

Win32 API是純粹的C. – 2012-01-15 02:45:23

+1

非常好的選擇。讓我知道,當你下降到組裝者的水平,甚至一些Verilog :) – 2012-01-15 02:53:33

+1

@VladLazarenko我們需要更多的人在這裏弗拉德,還有誰會做重任! ;):P – ScarletAmaranth 2012-01-15 03:06:39

回答

7
  1. Windows API(又名Win32 API)是一個純C庫。
  2. 不,您不能在另一臺非Windows計算機上使用Windows共享庫,除非存在支持Windows ABI的軟件 - 例如WineReactOS
+0

......並且很多時候你不能甚至可以在另一臺Windows機器上使用它。即在不同的體系結構上。 – 2012-01-15 02:52:40

+0

@VladLazarenko很頻繁?你有沒有可移植的東西的參考? – 2012-01-15 03:00:13

+0

@cli_hlt無賴!當你只擁有一個平臺時,我討厭C的缺乏可移植性。有沒有辦法從Windows機器上爲UNIX創建共享庫? – bgroenks 2012-01-15 04:03:11

0

像其他人所指出的Win32 API是純粹的C.它意味着,一旦你掌握了它,你就會知道操作系統的一切工作。通常與其他操作系統也是如此。如果您使用MFC/COM +或Java包裝器,即使您可以構建優秀的程序,情況也完全相反。

相關問題