這應該是非常簡單的問題。這裏有很多編程語言,編譯成機器代碼或託管代碼。我剛從高中開始學習ASM。彙編器非常好,因爲你知道CPU究竟做了什麼。接下來,(正如你可以在這裏看到我的其他問題),我決定學習C和C++。我從我讀的語言中選擇了C becouse,它是輸出與彙編程序最接近的語言。不同的編程語言的可能性
但是,我想知道的是,任何其他Windows編程語言都可以調用win32 API嗎?確切地說,像C有其特殊的標題和功能的win32 API互動,這是否被認爲是編程語言的一些重要組成部分?或者是否有任何語言不支持調用win32 API,或者只是將控制檯用於IO以及基本文件IO的某些功能? Becouse,對於使用圖形輸出的Windows編程,必須獲取win32 API。我知道這個問題可能看起來很愚蠢,但仍然請,幫助我,我請求學習poposes。謝謝。
windows.h只是讓你的程序知道'C:\ Windows'中的DLL裏面有什麼。當你導入windows.h時,你可以直接使用API函數,而不會有任何關於它的問題。當使用其他語言時,您可能必須手動打開DLL文件才能調用其中包含的函數。 printf()是所有C編譯器附帶的標準庫的一部分。標準庫是一個較小的庫,其中包含所有需要跨平臺的基本內容。 WinAPI的東西不是跨平臺的。 – 2010-04-20 18:05:36
好的,謝謝。我能再多提一個小問題嗎?如果標準庫是跨平臺的,那麼在Windows或Linux編譯器中,像printf()這樣的函數必須是相同的。所以,Windows和Linux都必須支持它。我的意思是支持控制檯進行處理並與其進行相同的通信。但我認爲Console應用程序和GUI win32項目的唯一區別在於,控制檯應用程序在啓動時自動分配控制檯。所以我認爲即使像printf()這樣的函數也是特定於平臺的。 Becouse,例如Dos使用int 21h輸出,我認爲Linux使用int 80h。 – 2010-04-20 19:34:06
是的,Windows控制檯應用程序確實使用WinAPI分配啓動時立即打開的控制檯(如果未從其他控制檯調用)。但是,在Linux上,你不得不從終端窗口調用該程序(一旦爲該平臺編譯過)。對於輸入/輸出的東西也不用擔心硬件問題,可以考慮使用stdin/stdout/stderr等流進行通信。這從硬件細節中抽象出來,並允許跨平臺編程。 – 2010-04-20 20:49:07