做dll創(chuàng)建時有三種類型選擇,分別做如何解釋啊?謝謝啊! 做dll創(chuàng)建時有三種類型選擇,分別做如何解釋?。恐x謝??! regular dll with MFC starically linked regular dll useing shared MFC DLL MFC Extension DLL (use shared MFC DLL) ------解決方案-------------------- http://blog.hc360.com/portal/personShowArticle.do?articleId=64283 ------解決方案-------------------- Non-MFC DLL:指的是不用 MFC 的類庫結(jié)構(gòu),直接用 C 語言寫的 DLL,其輸出的函數(shù)一般用的是標(biāo)準(zhǔn) C 接口,并能被 非 MFC 或 MFC 編寫的應(yīng)用程序所調(diào)用。 Regular DLL:和下述的 Extension DLLs 一樣,是用 MFC 類庫編寫的。明顯的特點(diǎn)是在源文件里有一個繼承 CWinApp 的類。其又可細(xì)分成靜態(tài)連接到 MFC 和動態(tài)連接到 MFC 上的。 靜態(tài)連接到 MFC 的動態(tài)連接庫只被 VC 的專業(yè) 版和企業(yè)版所支持。該類 DLL 應(yīng)用程序里頭的輸出函數(shù)可以被任意 Win32 程序使用,包括使用 MFC 的應(yīng)用程序。輸入函數(shù)有如下形式: extern "C" EXPORT YourExportedFunction(); 如果沒有 extern "C" 修飾,輸出函數(shù)僅僅能從 C++ 代碼中調(diào)用。 DLL 應(yīng)用程序從 CWinApp 派生,但沒有消息循環(huán)。 動態(tài)鏈接到 MFC 的 規(guī)則 DLL 應(yīng)用程序里頭的輸出函數(shù)可以被任意 Win32 程序使用,包括使用 MFC 的應(yīng)用程序。但是,所有從 DLL 輸出的函數(shù)應(yīng)該以如下語句開始: AFX_MANAGE_STATE(AfxGetStaticModuleState( )) 此語句用來正確地切換 MFC 模塊狀態(tài)。 Regular DLL能夠被所有支持 DLL 技術(shù)的語言所編寫的應(yīng)用程序所調(diào)用。在這種動態(tài)連接庫中,它必須有一個從 CWinApp 繼承下來的類,DLLMain 函數(shù)被 MFC 所提供,不用自己顯式的寫出來。 Extension DLL:用來實(shí)現(xiàn)從 MFC 所繼承下來的類的重新利用,也就是說,用這種類型的動態(tài)連接庫,可以用來輸出一個從 MFC 所繼承下來的類。它輸出的函數(shù)僅可以被使用 MFC 且動態(tài)鏈接到 MFC 的應(yīng)用程序使用。可以從 MFC 繼承你所想要的、更適于你自己用的類,并把它提供給你的應(yīng)用程序。你也可隨意的給你的應(yīng)用程序提供 MFC 或 MFC 繼承類的對象指針。Extension DLL使用 MFC 的動態(tài)連接版本所創(chuàng)建的,并且它只被用 MFC 類庫所編寫的應(yīng)用程序所調(diào)用。Extension DLLs 和 Regular DLLs 不一樣,它沒有從 CWinApp 繼承而來的類的對象,所以,你必須為自己 DLLMain 函數(shù)添加初始化代碼和結(jié)束代碼。 ------解決方案-------------------- 可以到www.vehome.net中下載一個關(guān)于dll的chm文件,里面有例子也有關(guān)于這些基本的東西的講解。 |
|