




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022/10/111自我介紹!Email: 姓名: 劉曉翔QQ: 13134954性別: 男年齡: xxx籍貫: 湖北聯(lián)系方式:手機(jī): 135438945892022/10/11Windows編程主講:劉曉翔2022/10/113前言什么是Windows編程?1. 你編寫的程序是否遵循了Windows的編程模型?2.是否調(diào)用了Windows操作系統(tǒng)的應(yīng)用程序編程接口函數(shù)API,或者對(duì)其封裝后的基礎(chǔ)類庫(kù)(如MFC)。2022/10/114前言關(guān)于Windows編程的三個(gè)問題1. 什么是Windows API? 2. 什么是MFC?3. 為什么要使用MFC?2022/10/115前言1. 什么是
2、 Windows API? 從Windows應(yīng)用程序,操作系統(tǒng),計(jì)算機(jī)硬件之間的相互關(guān)系開始說起 應(yīng)用程序的機(jī)能就是:通知操作系統(tǒng)控制計(jì)算機(jī)硬件,執(zhí)行某個(gè)具體的動(dòng)作,完成特定的功能。 例如:操作系統(tǒng)能夠控制聲卡發(fā)出聲音,但它并不知道應(yīng)該何時(shí)發(fā)出何種聲音,需要應(yīng)用程序告訴操作系統(tǒng)該發(fā)出什么樣的聲音。那么,應(yīng)用程序是如何通知操作系統(tǒng)執(zhí)行某個(gè)功能的呢?2022/10/116前言1. 什么是 Windows API?(續(xù)) 有過編程經(jīng)驗(yàn)的同學(xué)都應(yīng)該知道,在傳統(tǒng)應(yīng)用程序中要完成某個(gè)功能,都是以函數(shù)調(diào)用的形式實(shí)現(xiàn)的,同樣,Windows應(yīng)用程序也是以函數(shù)調(diào)用的方式來通知操作系統(tǒng)執(zhí)行相應(yīng)的功能的。 操作系統(tǒng)
3、所能夠完成的每一個(gè)特殊功能通常都有一個(gè)函數(shù)與其對(duì)應(yīng),也就是說,操作系統(tǒng)把它所能夠完成的功能以函數(shù)的形式提供給應(yīng)用程序使用,應(yīng)用程序?qū)@些函數(shù)的調(diào)用就叫做系統(tǒng)調(diào)用,這些函數(shù)的集合就是Windows應(yīng)用程序編程接口(Application Programming Interface),簡(jiǎn)稱Windows API。 如CreateWindow就是一個(gè)API函數(shù),應(yīng)用程序中調(diào)用這個(gè)函數(shù),操作系統(tǒng)就會(huì)按照該函數(shù)提供的參數(shù)信息產(chǎn)生一個(gè)相應(yīng)的窗口。2022/10/117前言1. 什么是 Windows API?(續(xù)) Windows編程的本質(zhì): 利用Windows API 函數(shù)編寫應(yīng)用程序,讓操作系統(tǒng)完成某
4、種特定的功能 。Windows/System32/Kernel32.dll、 USER32.dll、GDI32.dllWindows API 函數(shù)在哪里?怎樣使用Windows API?C和Windows SDK開發(fā)包( API函數(shù)是用純C寫的,都在windows.h中有聲明)然而如今,C+取代了C,成為專業(yè)Windows程序員首選的語(yǔ)言,所以MFC橫空出世了2022/10/118前言2. 什么是 MFC? MFC英文全稱為Microsoft Foundation Classes (微軟基礎(chǔ)類庫(kù)),是把Windows API進(jìn)行封裝的類庫(kù),它是一個(gè)類的集合,通過覆蓋Windows API,為編
5、程提供了一個(gè)面向?qū)ο蟮慕缑妗?MFC使Windows程序員能夠利用C+面象對(duì)象的特性進(jìn)行編程。2022/10/119前言3. 為什么要使用MFC?可重用性封裝后使方法和屬性更緊密的捆綁常用的功能自動(dòng)化,減少編寫代碼的數(shù)量提供應(yīng)用程序的框架結(jié)構(gòu) 框架結(jié)構(gòu)提供了抽象功能,它遠(yuǎn)遠(yuǎn)超出了Windows API的功能。例如:MFC的文檔/視圖體系結(jié)構(gòu)在API上建造了一個(gè)功能強(qiáng)大的基礎(chǔ)結(jié)構(gòu),它把程序中數(shù)據(jù)的圖形表示(或稱為視圖)與數(shù)據(jù)本身分開。這種抽象對(duì)API而言完全是陌生的,而且在MFC框架結(jié)構(gòu)之外或類似的類庫(kù)中也不存在。2022/10/1110關(guān)于教材參考書籍(Windows 編程四大法寶)VC深入詳
6、解孫鑫著 電子工業(yè)出版社深入淺出MFC(第二版)侯俊杰著 華中科技大學(xué)出版社Windows程序設(shè)計(jì)(第五版)Charles Petzold著 北京大學(xué)出版社( Microsoft Press )VisualC+技術(shù)內(nèi)幕(第四版)DavidJ.Kruglinski著 清華大學(xué)出版社( Microsoft Press )2022/10/1111內(nèi)容安排Windows程序內(nèi)部運(yùn)行機(jī)制 (API)C+ 進(jìn)階MFC框架程序 (“文檔/視圖”體系結(jié)構(gòu)程序)在窗口中繪圖在窗口中編輯文本菜單編程對(duì)話框界面設(shè)計(jì)(外觀、工具欄、狀態(tài)欄)動(dòng)態(tài)鏈接庫(kù)多線程應(yīng)用程序2022/10/11第一講Windows程序內(nèi)部運(yùn)行原
7、理2022/10/1113Windows 程序內(nèi)部運(yùn)行機(jī)制Windows編程模型事件驅(qū)動(dòng)編程模型以消息為基礎(chǔ),事件驅(qū)動(dòng)之WM_PAINTWM_KEYDOWNWM_LBUTTONDOWN消息響應(yīng)消息響應(yīng)消息響應(yīng)DefWindowProc來源于操作系統(tǒng)的消息消息隊(duì)列WinMain消息循環(huán)發(fā)送消息窗口過程未處理的消息應(yīng)用程序窗口交還給操作系統(tǒng)操作系統(tǒng)實(shí)現(xiàn)特定功能2022/10/1114Windows 程序內(nèi)部運(yùn)行機(jī)制消息、消息隊(duì)列、消息循環(huán) 應(yīng)用程序開始執(zhí)行后,系統(tǒng)都會(huì)為該程序創(chuàng)建一個(gè)消息隊(duì)列,這個(gè)消息隊(duì)列用來存放該程序創(chuàng)建的窗口的消息(消息通常與窗口相關(guān))。 例如,當(dāng)我們按下鼠標(biāo)左鍵的時(shí)候,將會(huì)產(chǎn)
8、生消息,系統(tǒng)會(huì)將這個(gè)消息放到窗口所屬的應(yīng)用程序的消息隊(duì)列中,等待應(yīng)用程序的處理。產(chǎn)生的消息都會(huì)依次放到消息隊(duì)列中,而應(yīng)用程序則通過一個(gè)消息循環(huán)不斷地從消息隊(duì)列中取出消息,并進(jìn)行響應(yīng)。2022/10/1115Windows 程序內(nèi)部運(yùn)行機(jī)制消息響應(yīng)與窗口過程 如用戶在某個(gè)程序活動(dòng)時(shí)按了一下鍵盤,操作系統(tǒng)馬上能夠感知到這一事件,并且能夠知道用戶按下的是哪一個(gè)鍵,操作系統(tǒng)并不決定對(duì)這一事件如何作出反應(yīng),而是將這一事件轉(zhuǎn)交給應(yīng)用程序,由應(yīng)用程序決定如何對(duì)這一事件作出反應(yīng)。對(duì)事件作出反應(yīng)的過程就是消息響應(yīng),各種消息響應(yīng)放在一起組成了窗口過程。 2022/10/1116Windows 程序內(nèi)部運(yùn)行機(jī)制Wi
9、ndows API 中消息的定義 操作系統(tǒng)是怎樣將感知到的事件傳遞給應(yīng)用程序的呢?這是通過消息機(jī)制(Message)來實(shí)現(xiàn)的。操作系統(tǒng)將每個(gè)事件都包裝成一個(gè)稱為消息的結(jié)構(gòu)體MSG來傳遞給應(yīng)用程序,參看MSDN。MSG結(jié)構(gòu)定義如下: typedef struct tagMSG HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; MSG; 2022/10/1117Windows 程序內(nèi)部運(yùn)行機(jī)制小小知識(shí)點(diǎn)“句柄” 句柄(HANDLE),資源的標(biāo)識(shí)。 操作系統(tǒng)要管理和操作各種各樣的資源,都是通過句柄
10、來找到對(duì)應(yīng)的資源。按資源的類型,又可將句柄細(xì)分成圖標(biāo)句柄(HICON),光標(biāo)句柄(HCURSOR),窗口句柄(HWND),應(yīng)用程序?qū)嵗浔℉INSTANCE)等等各種類型的句柄。 操作系統(tǒng)給每一個(gè)窗口指定的一個(gè)唯一的標(biāo)識(shí)號(hào)即窗口句柄。 2022/10/1118Windows 程序內(nèi)部運(yùn)行機(jī)制小小知識(shí)點(diǎn)API中對(duì)數(shù)據(jù)類型的宏定義好處:讓數(shù)據(jù)類型具備語(yǔ)義信息,從變量的類型就可以區(qū)分變量的用途!int x, y;x = 30;y = 30;/x和y既可以用來表示坐標(biāo)點(diǎn),也可以用來表示寬度和高度,還可以用來表示身高和體重。typedef int WIDTHtypedef int HEIGHTWIDT
11、H x;HEIGHT y;/我們從變量的類型上就可以知道x和y是用來表示寬度和高度。2022/10/1119Windows 程序內(nèi)部運(yùn)行機(jī)制編寫Windows應(yīng)用程序的要素消息響應(yīng)消息響應(yīng)消息響應(yīng)DefWindowProcWinMain消息循環(huán)發(fā)送消息窗口過程未處理的消息應(yīng)用程序1 入口函數(shù)WinMain2 創(chuàng)建窗口3 消息循環(huán)與發(fā)送消息4 窗口過程與消息響應(yīng)消息窗口2022/10/1120Windows 程序內(nèi)部運(yùn)行機(jī)制1.入口函數(shù)WinMainint WINAPI WinMain( HINSTANCE hInstance, / 當(dāng)前應(yīng)用程序?qū)嵗浔?HINSTANCE hPrevInsta
12、nce, / 永遠(yuǎn)為NULL LPSTR lpCmdLine, / 命令行參數(shù) int nCmdShow / 窗口顯示時(shí)的狀態(tài));2022/10/1121Windows 程序內(nèi)部運(yùn)行機(jī)制2. 創(chuàng)建窗口 創(chuàng)建一個(gè)完整的窗口需要經(jīng)過下面四個(gè)操作步驟: Step1: 設(shè)計(jì)一個(gè)窗口類; Step2: 注冊(cè)窗口類; Step3: 創(chuàng)建窗口; Step4: 顯示及更新窗口。2022/10/1122Windows 程序內(nèi)部運(yùn)行機(jī)制設(shè)計(jì)窗口類typedef struct _WNDCLASS UINT style; /窗口類樣式 WNDPROClpfnWndProc; /窗口過程函數(shù)指針 int cbClsEx
13、tra; /窗口類附加內(nèi)存字節(jié)數(shù),通常為0 int cbWndExtra; /窗口附加內(nèi)存字節(jié)數(shù),通常為0 HANDLE hInstance; /應(yīng)用程序?qū)嵗浔?HICON hIcon; /標(biāo)題欄圖標(biāo) HCURSOR hCursor; /光標(biāo) HBRUSH hbrBackground; /窗口背景顏色 LPCTSTR lpszMenuName; /菜單資源名稱 LPCTSTR lpszClassName; /窗口類名稱 WNDCLASS; 2022/10/1123Windows 程序內(nèi)部運(yùn)行機(jī)制創(chuàng)建窗口HWND CreateWindow( LPCTSTR lpClassName, / 已注冊(cè)
14、的窗口類名稱 LPCTSTR lpWindowName, / 窗口標(biāo)題欄中顯示的文本 DWORD dwStyle, / 窗口樣式 int x, / 水平坐標(biāo) int y, / 垂直坐標(biāo) int nWidth, / 寬度 int nHeight, / 高度 HWND hWndParent, / 父窗口句柄 HMENU hMenu, / 菜單句柄 HINSTANCE hInstance, / 應(yīng)用程序?qū)嵗浔?LPVOID lpParam / 用于多文檔程序的附加參數(shù),單文檔為NULL ); 2022/10/1124Windows 程序內(nèi)部運(yùn)行機(jī)制3. 消息循環(huán)與發(fā)送消息MSG msg;while
15、 (GetMessage(&msg,NULL,0,0) /從消息隊(duì)列獲取消息TranslateMessage(&msg); /消息解釋DispatchMessage(&msg); /將消息發(fā)送到“窗口過程”2022/10/1125Windows 程序內(nèi)部運(yùn)行機(jī)制GetMessageBOOL GetMessage( LPMSG lpMsg, / 消息結(jié)構(gòu)體指針,返回消息信息 HWND hWnd, / 窗口句柄 ,通常設(shè)為NULL UINT wMsgFilterMin, / 消息過濾最小值 UINT wMsgFilterMax / 消息過濾最大值 ); GetMessage從線程的消息隊(duì)列中取出消
16、息,取出的消息保存在事先定義好的消息的結(jié)構(gòu)體對(duì)象中。 GetMessage函數(shù)取到除WM_QUIT外的消息均返回非零值,只有在接收到WM_QUIT消息時(shí),才返回0。 什么時(shí)候才會(huì)收到WM_QUIT呢?(見窗口過程)2022/10/1126Windows 程序內(nèi)部運(yùn)行機(jī)制TranslateMessage TranslateMessage函數(shù)用于將虛擬鍵消息轉(zhuǎn)換為字符消息。當(dāng)我們敲擊鍵盤上的某個(gè)字符鍵時(shí),系統(tǒng)將產(chǎn)生WM_KEYDOWN和WM_KEYUP消息。這兩個(gè)消息的附加參數(shù)(wParam和lParam)包含的是虛擬鍵代碼和掃描碼等信息,而我們?cè)诔绦蛑型枰玫侥硞€(gè)字符的ASCII碼,Tran
17、slateMessage這個(gè)函數(shù)就可以將WM_KEYDOWN和WM_KEYUP消息的組合轉(zhuǎn)換為一條WM_CHAR消息,該消息的WParam附加參數(shù)包含了字符的ASCII碼),并將轉(zhuǎn)換后的新消息投遞到調(diào)用線程的消息隊(duì)列中。注意,Translate函數(shù)并不會(huì)修改原有的信息,他只是產(chǎn)生新的消息并投遞到消息隊(duì)列中。2022/10/1127Windows 程序內(nèi)部運(yùn)行機(jī)制DispatchMessage DispatchMessage分派一個(gè)消息到窗口過程。由窗口過程函數(shù)對(duì)消息進(jìn)行處理。 DispatchMessage實(shí)際上是將消息回傳給操作系統(tǒng),再由操作系統(tǒng)調(diào)用窗口過程函數(shù)對(duì)消息進(jìn)行處理。2022/10
18、/1128 對(duì)于一條消息,操作系統(tǒng)到底調(diào)用應(yīng)用程序中的哪個(gè)函數(shù)來處理呢? 操作系統(tǒng)調(diào)用的就是接受消息的窗口所屬的類型中的lpfnWndProc成員(還記得窗口類的第二個(gè)成員嗎?)指定的函數(shù)。每一種不同類型的窗口都有自己專用的回調(diào)函數(shù),該函數(shù)就是通過lpfnWndProc成員指定的,也稱回調(diào)函數(shù)。 回調(diào)函數(shù)的原理是這樣的,當(dāng)應(yīng)用程序收到給某一窗口的消息時(shí),就應(yīng)該調(diào)用某一函數(shù)來處理這條消息。這一調(diào)用過程不用應(yīng)用程序自己來實(shí)施,而由操作系統(tǒng)來完成,但是,回調(diào)函數(shù)本身的代碼必須由應(yīng)用程序自己完成。 Windows 程序內(nèi)部運(yùn)行機(jī)制窗口過程函數(shù)2022/10/1129Windows 程序內(nèi)部運(yùn)行機(jī)制5.
19、 窗口過程與響應(yīng)消息LRESULT CALLBACK MyWndProc( HWND hwnd, / handle to window UINT uMsg, / message identifier WPARAM wParam, / first message parameter LPARAM lParam / second message parameter) switch (uMsg) case WM_PAINT: /響應(yīng)消息 case WM_KEYDOWN: /響應(yīng)消息 case WM_LBUTTONDOWN: /響應(yīng)消息 default: return DefWindowProc(hw
20、nd,uMsg,wParam,lParam); return 0;2022/10/1130Windows 程序內(nèi)部運(yùn)行機(jī)制回調(diào)函數(shù) 凡是由你設(shè)計(jì)而卻由Windows系統(tǒng)調(diào)用的函數(shù),統(tǒng)稱為Callback函數(shù)。這些函數(shù)都有一定的類型,以配合Windows的調(diào)用操作。 除了窗口過程函數(shù),Windows API還有一些其它的回調(diào)函數(shù),例如SetTimer、LineDDA、EnumObject。這種函數(shù)會(huì)在進(jìn)行某種行為之后或滿足某種狀態(tài)之時(shí),操作系統(tǒng)自動(dòng)調(diào)用該函數(shù)。2022/10/1131Windows 程序內(nèi)部運(yùn)行機(jī)制小小知識(shí):函數(shù)的三種調(diào)用方式_cdecl 是C/C+和MFC程序默認(rèn)使用的調(diào)用約定
21、,也可以在函數(shù)聲明時(shí)加上_cdecl關(guān)鍵字來手工指定。采用_cdecl約定時(shí),函數(shù)參數(shù)按照從右到左的順序入棧,并且由調(diào)用函數(shù)者把參數(shù)彈出棧以清理堆棧。因此,實(shí)現(xiàn)可變參數(shù)的函數(shù)只能使用該調(diào)用約定。由于每一個(gè)使用_cdecl約定的函數(shù)都要包含清理堆棧的代碼,所以產(chǎn)生的可執(zhí)行文件大小會(huì)比較大。_stdcall 調(diào)用約定用于調(diào)用Win32 API函數(shù)。采用_stdcall約定時(shí),函數(shù)參數(shù)按照從右到左的順序入棧,被調(diào)用的函數(shù)在返回前清理傳送參數(shù)的棧,函數(shù)參數(shù)個(gè)數(shù)固定。由于函數(shù)體本身知道傳進(jìn)來的參數(shù)個(gè)數(shù),因此被調(diào)用的函數(shù)可以在返回前用一條ret n指令直接清理傳遞參數(shù)的堆棧。_fastcall 約定用于對(duì)
22、性能要求非常高的場(chǎng)合。_fastcall約定將函數(shù)的從左邊開始的兩個(gè)大小不大于4個(gè)字節(jié)(DWORD)的參數(shù)分別放在ECX和EDX寄存器,其余的參數(shù)仍舊自右向左壓棧傳送,被調(diào)用的函數(shù)在返回前清理傳送參數(shù)的堆棧。_fastcall可以寫成_fastcall。 2022/10/1132Windows 程序內(nèi)部運(yùn)行機(jī)制三種調(diào)用方式的特別說明在默認(rèn)情況下,VC采用_cdecl方式,因此可以省略.WINAPI一般用于修飾動(dòng)態(tài)鏈接庫(kù)中導(dǎo)出函數(shù) CALLBACK僅用于修飾回調(diào)函數(shù) 2022/10/1133Windows 程序內(nèi)部運(yùn)行機(jī)制DefWindowProc 我們的程序無論多大都不可能將所有的消息都處理,
23、所以我們必須有一個(gè)機(jī)制讓不感興趣的、不需要我們處理的消息,交還給Windows操作系統(tǒng)為我們處理,這個(gè)過程就是由DefWindowProc函數(shù)來實(shí)現(xiàn)的,也是每個(gè)程序所必備的。2022/10/1134Windows 程序內(nèi)部運(yùn)行機(jī)制WM_DESTROY 當(dāng)窗口被銷毀時(shí)會(huì)產(chǎn)生這個(gè)消息(通常也是準(zhǔn)備退出應(yīng)用程序的時(shí)候),對(duì)于這個(gè)消息的響應(yīng)是每個(gè)程序所必備的。怎樣響應(yīng)呢? 響應(yīng)方式就是調(diào)用PostQuitMessage函數(shù),該函數(shù)會(huì)在消息隊(duì)列中添加一個(gè)WM_QUIT消息,準(zhǔn)備讓由消息循環(huán)中的GetMessage取得。當(dāng)消息循環(huán)中的收到WM_QUIT消息時(shí),GetMessage會(huì)傳回0,從而結(jié)束消息循環(huán),進(jìn)而結(jié)束整個(gè)程序。 2022/10/1135Windows 程序內(nèi)部運(yùn)行機(jī)制WM_QUIT & PostQuitMessage PostQuitMessage會(huì)發(fā)送WM_QUIT給消息隊(duì)列。注意,WM_QUIT永遠(yuǎn)不會(huì)到達(dá)窗口過程,因?yàn)镚etMessage得到WM_QUIT后就會(huì)返回0,從而結(jié)束消息循環(huán),程序退出。 強(qiáng)烈建議PostQuitMessage放在WM_DESTROY消息響應(yīng)里面調(diào)用,讓程序正常有序的結(jié)束,因?yàn)橥ǔdN毀窗口是程序運(yùn)行的最后一步。 當(dāng)然,PostQuitMe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年中國(guó)藥用貼膏劑行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 2024-2030年中國(guó)建筑機(jī)械租賃行業(yè)發(fā)展深度調(diào)研與未來趨勢(shì)報(bào)告
- 2025年中國(guó)注射用炎琥寧市場(chǎng)行情動(dòng)態(tài)分析及發(fā)展前景趨勢(shì)預(yù)測(cè)報(bào)告
- 中國(guó)醫(yī)用一次性手術(shù)衣行業(yè)市場(chǎng)供需預(yù)測(cè)及投資戰(zhàn)略研究咨詢報(bào)告
- 2024-2025學(xué)年高中歷史課時(shí)作業(yè)1古代中國(guó)的農(nóng)業(yè)經(jīng)濟(jì)人民版必修2
- 2024-2025學(xué)年高中歷史第四單元亞洲覺醒的先軀單元學(xué)習(xí)總結(jié)講義新人教版選修4
- 中國(guó)帳篷門桿項(xiàng)目投資可行性研究報(bào)告
- 2024山東金冶煉市場(chǎng)前景及投資研究報(bào)告
- 吸塵掃地車行業(yè)市場(chǎng)發(fā)展及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 附子理宮丸行業(yè)深度研究報(bào)告
- 2024-2025學(xué)年重慶市渝中區(qū)四年級(jí)(上)期末數(shù)學(xué)試卷
- 2025年人教版中考英語(yǔ)一輪復(fù)習(xí):七年級(jí)下冊(cè)考點(diǎn)測(cè)試卷(含答案)
- 三年級(jí)體育下冊(cè)全冊(cè)教案
- 2024年八年級(jí)語(yǔ)文下冊(cè)《經(jīng)典常談》第一章《說文解字》練習(xí)題卷附答案
- (研究生)商業(yè)倫理與會(huì)計(jì)職業(yè)道德ppt教學(xué)課件(完整版)
- 山西省煤炭運(yùn)銷集團(tuán)有限公司王家?guī)X煤礦井筒工程施工組織設(shè)計(jì)
- 三年級(jí)數(shù)學(xué)下冊(cè)單元計(jì)劃【9個(gè)單元全】
- 火力發(fā)電廠水汽化學(xué)監(jiān)督導(dǎo)則
- 二年級(jí)科學(xué)上冊(cè)期末考試質(zhì)量分析
- 相聲《治病》
- 行動(dòng)學(xué)習(xí)-組織能力提升新境界培訓(xùn)課件.ppt
評(píng)論
0/150
提交評(píng)論