Ⅰ Windows API 入門什麼是 Windows API
Windows API 實際上是以一種新的方法代替了DOS中用軟中斷的方式。
和DOS的結構相比,Win32的系統功能模塊放在Windows的動態鏈接庫(DLL)中。
DLL是一種Windows的可執行文件,採用的是和 .exe文件同樣的PE格式。
在PE格式文件頭的導出表中,以字元串形式指出了這個DLL能提供的函數列表。
應用程序使用字元串類型的函數名指定要調用的函數。
實際上,Win32的基礎就是由DLL組成的。Win32 API的核心由3個DLL提供,它們是:
KERNEL32.DLL——系統服務功能。包括內存管理、任務管理和動態鏈接等。
GDI32.DLL——圖形設備介面。利用VGA與DRV之類的顯示設備驅動程序完成顯示文本和矩形等功能。
USER32.DLL——用戶介面服務。建立窗口和傳送消息等。
當然,Win32 API還包括其他很多函數,這些也是由DLL提供的,不同的DLL提供了不同的系統功能。如使用TCP/IP協議進行網路通信的DLL是Wsock32.dll,它所提供的API稱為Socket API;專用於電話服務方面的API稱為TAPI(Telephony API),包含在Tapi32.dll中。所有的這些DLL提供的函數組成了現在所用的Win32編程環境。
Ⅱ Windows API是什麼編寫軟體需要嗎
windows api 是在進行windows編程時的必備品 它其實是你的程序和WINDOWS交通的介面
WINDOWS提供了一大堆函數,你調用這些函數就可以進行一些不同功能的組合
比如編寫病毒控制注冊表 啟動項 查看硬碟信息, 文件的復制等等都是用windows api實現的
不用軟體, 用VC就可以,C語言直接可以調用api函數 前邊加上#include<windows.h>就可以了
有本書專門教這個叫 windows程序設計 第五版
Ⅲ 我想學習編程需要購買那些書籍
書籍整理如下:
C++開發
1.《C++ Primer》:全面學習C++的必備書籍
2.《Thinking in C++》:了解C++背後的一些機制
3.《深度探索C++對象模型》:深入了解C++,也是學習COM的必經之路
Windows平台
入門
1.《Windows程序設計》:這本書主要講的是Windows API的使用,是Windows編程入門書籍。上冊涉及到的知識基本上就夠用了,時間不充裕的話閱讀上冊即可。
2.《Win32多線程程序設計》:Windows下多線程編程必備
3.《Windows核心編程》:Window平台基礎知識:消息機制,內存管理,多線程,動態鏈接庫等
4.《Windows網路編程》:介紹Windows下各種網路協議的開發和並發處理模型。
進階
1.《深入淺出MFC》:Windows下編程,MFC雖然有些過時,但其機制還是有學習的價值。重點學習書中提到的MFC 6大機制
2.《COM本質論》:COM是Windows構建用戶態的重要技術之一,Windows開發必修課,本書對COM的設計動機作了深入闡述
3.《深入解析ATL》:ATL全名Active Templete Library,是用C++的模版封裝了COM,這本書主要講的是對源碼分析
4.《WTL White Paper》:WTL源自微軟,基於ATL的一套開源模版庫,主要用於界面編程和工具類的使用
5.《代碼大全》:這邊書主要講的是工程編碼規范
高級
1.《深入解析Windows操作系統》:Windows大牛書籍,講的主要是Windows操作系統的內核原理
調試技術
1.《軟體調試》
2.《Windows高級調試》
3.《windows用戶態程序高效排錯》
Linux平台
Linux內核
1.《Linux Kernel Development》/《Linux內核設計與實現》:Robert Love的著作,不厚的一本書,深入淺出地將Linux內核娓娓道來
Linux使用和Shell編程
1.《sed & awk》/《sed與awk》:sed與awk都是Linux下常用的日誌分析利器
Linux編程
1.《Beginning Linux Programming》/《Linux程序設計》:老牌的Linux編程入門書
2.《Advanced Programming in the Unix Environment》/《Unix環境高級編程》:對Unix編程環境做了細致的總結,涵蓋了進程間通訊、網路通訊、文件系統等各方面的知識
網路編程
1.《TCP/IP Illustrated, Volume I》/《TCP/IP詳解,卷一》:對理解TCP/IP協議的設計理念和協議細節有顯著的幫助。
2.《Unix Network Programming》/《Unix網路編程》,卷一、卷二:網路編程方面難以逾越的著作,事無巨細、深入淺出,強烈推薦
對這些書目抱有100%的信心,全部掌握,融會貫通,即可打通奇經八脈,天下無雙。
對了,你沒有基礎最好從c與c++基礎開始。找些基礎書開始看。
[C語言入門經典(第四版)].(美)霍頓.掃描版,《C++ Primer》就不錯。
Ⅳ windows API怎麼學呀,有沒有簡單些的入門教程
簡單的沒有,window API函數有非常非常的多,想要學好比較難,入門的教程最好的教程是《Windows 程序設計(第五版珍藏版)》 清華大學出版社的 但是這本書的門檻比較高,你要學的話就要有心理准備,第一次看不用完全理解全部的東西,知道有那麼一回事就行了,要用的時候就回頭查閱,最好你能多看幾次這本書。Windows API 要的是多練,自己動手寫一些小程序,不懂的查資料,練多了你就記住了一些函數使用規律,很多函數都是不用去記憶的,你要用到的話可以去查資料,比如說MSDN ,久而久之,你就會有所收獲了。
Ⅳ Windows API 入門什麼是 Windows API
Windows API又叫做 API 函數, 是 Windows 的核心,從技術上講,我們技術人員在 Windows 操作系統里做技術開發,Windows 對我們技術人員來說,裡面有大量的 API 函數。
API 叫做 「應用程序編程介面」(Application Programming Interface) ,我們在使用各種各樣的編程語言在 Windows 開發時,都可以使用 API函數。
做程序設計、軟體開發,肯定要調用或者說是使用 Windows 里已經做好的那些 API 函數。
微軟在做 Windows 時,幾萬人做了十幾年做出了大量API函數, Windows 自身在用這些函數,而我們程序員也可以調用這些函數。
所以,API函數是程序員的必學基礎。
Ⅵ 最簡單的Windows API編程 求解
知其然要知其所以然。不管你是直接C++ source file, 還是 win32 Application,只要你了解其本質,那麼你可以通過簡單的配置,使你的程序成功運行起來。下面我告訴你如何在命令提示符(cmd.exe 或 command prompt)下編譯你的程序。
1.如何進入初始化編譯器環境的命令提示符:
1)如果還是使用VC++6.0。那麼在開始->運行中輸入cmd, 然後回車。在cmd.exe中使用cd命令進入你的VC++6.0安裝目錄的VC目錄下,應該可以找到vcvars32.bat, 然後在cmd.exe運行vcvars32.bat批處理腳步就可以了。
2)如果是VS 2005 2008 2010 2012,那麼在開始中找到對應目錄,在這個目錄下有個開發工具目錄,裡面有個vs x32 command prompt, 直接點擊就可以了。
2.如何在以上命令提示符中編譯你的程序,假設你上面的程序文件為test.c:
cl /? #查看編譯器使用幫助
cl /OUT:test.exe kernel32.lib user32.lib gdi32.lib /SUBSYSTEM:WINDOWS /ENTRY:WinMainStartup /MANIFEST:NO /MD test.c
這樣可以成功編譯出來的text.exe
Tip: 問題的關鍵是/SUBSYSTEM和/ENTRY
/SUBSYSTEM: [CONSOLES, WINDOWS, ...] 這是主要的兩個參數。
/ENTRY: [WinMainStartup, mainCRTStartup] 就這兩個參數。(WinMainStartup可能是WinMainCRTStartup,我記不清了)
問題關聯:
1.當你直接C++ source file時,/SUBSYSTEM:CONSOLES /ENTRY:mainCRTStartup (這時入口函數時main,<report LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main >, 它說crt0.obj使用了一個叫main的函數,你卻沒有寫...)
2.當你使用win32 application時,/SUBSYSTEM:WINDOWS /ENTRY:WinMainCRTStartup (這時你的程序符合要求,因為它找到了WinMain函數)
拓展:
#include<windows.h>
#pragma comment(lib,"User32.lib")
int main(int argc, char *argv[])
{
MessageBox(NULL,TEXT("開始學習"),TEXT("消息對話框"),MB_OK);
return 0;
}
把WinMain改成標准C/C++的main之後如何運行程序,因為你使用MessageBox函數,使用了win32 API, 故/SUBSYSTEM:WINDOWS。又因為你使用main函數為程序入口函數,故/ENTRY:mainCTRStartup。編譯命令如下:
cl /OUT:test.exe kernel32.lib user32.lib gdi32.lib /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup /MANIFEST:NO /MD test.c
Note: 以上參數都可以在VC++開發環境工程設置裡面進行更改設置,由於我是在Unix下工作,很久沒有接觸VC,以上參數可能存在偏差,請使用cl /? link /? res /? nmake /?等自行仔細查看。另外,我建議開始編程使用命令加腳本的方式編程,學會使用自己編寫Makefile, 因為VC++的圖形開發環境本質就是建立在各種腳本之上,所以對排查程序錯誤能夠有本質上的認識。
Ⅶ API編程初學
我是先學了mfc再回來學習win32 api的。哈哈!走了彎路,個人覺得還是先學一些win32編程的概念和基礎再學 mfc 就容易多了。
技巧的東西,或者說捷徑的東西,不好說。覺得一切都是積累。現在回顧以前,遇到一個問題(比如繪圖,設置滾動條等等操作),當初都要上網搜很久才能解決,解決後就是經驗,就是財富。現在遇到同樣問題,把原來積累的代碼往上一貼,加以修改和潤色,哈哈哈,完事。這就是經驗啊。
編程過程中要記得積累,做筆記,總結,提取。
比如:
1.要顯示一個圖片,做一個常用的類CBitmapPic,那以後只要有圖片的路徑或者資源id,就可以馬上調用CBitmapPic.draw(0,0,100,100) 輸出了
2.比如文件對話框,把其再簡單的分裝成一個函數,下次要用到時也是簡單的調用就可以了。
這樣總結提取的好處是不言而喻的,從某種意義上講,寫程序就像堆積木。你把以前的「積木」做好了,下次要用,拿過來堆上去就可以了,多省事啊。否則每次都折騰一番,效率多低啊。
做一些小程序吧(而且是自己感興趣的,比如寫一個俄羅斯方塊),在這個過程中遇到問題就上網搜索,完成後你會發現你學習到很多東西了。
在推薦我自己寫的一個trace()宏,很方便就能輸出要調試的變數。強烈推薦啊。請看:
這是我學習時做的筆記,比較凌亂,但相信有可取的地方,希望對你有所幫助
Ⅷ windows api編程視頻教程
本人現正推出《Windows程序設計》視頻教程,詳情參見本人博客:hi..com/gj888
葛軍視頻教程之《windows程序設計》已陸續開始發布。
土豆網地址:http://www.tudou.com/home/_331583630
優酷網地址:http://i.youku.com/u/UMTMyNjMzNDUyMA==
說明:
1、在土豆網觀看本人視頻教程時,如果需要更清晰的觀看效果。可選擇「原畫」、4:3模式。
2、在優酷網上本人的視頻教程,不僅可以在線觀看,也可以下載觀看。下載時,需要安裝優酷客戶端,在保存時可以選擇「超清」版本,「超清」便是本視頻的最佳觀看效果的版本。之後用優酷客戶端觀看(「超清」版本必須由優酷客戶端播放)。
葛軍
Ⅸ 學Windows編程是否需要背過Windows系統全部的API
win32 sdk api入門經典是《windows程序設計》上下冊,已經不好買,網上有電子書下。
《Windows API編程》寫的比較簡練,沒基礎的話不容易懂,給中級程序員看的,但難度比不上《windows核心編程》,