亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ch17.htm

?? 21天學(xué)會(huì)VC的英文版
?? HTM
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD>	<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1"><SCRIPT LANGUAGE="JavaScript"><!--function popUp(pPage) { var fullURL = document.location; var textURL = fullURL.toString(); var URLlen = textURL.length; var lenMinusPage = textURL.lastIndexOf("/"); lenMinusPage += 1; var fullPath = textURL.substring(0,lenMinusPage); popUpWin = window.open('','popWin','resizable=yes,scrollbars=no,width=525,height=394'); figDoc= popUpWin.document; zhtm= '<HTML><HEAD><TITLE>' + pPage + '</TITLE>'; zhtm += '</head>'; zhtm += '<BODY bgcolor="#FFFFFF">'; zhtm += '<IMG SRC="' + fullPath + pPage + '">'; zhtm += '<P><B>' + pPage + '</B>'; zhtm += '</BODY></HTML>'; window.popUpWin.document.write(zhtm); window.popUpWin.document.close(); // Johnny Jackson 4/28/98 }//-->                                                                </SCRIPT><link rel="stylesheet" href="/includes/stylesheets/ebooks.css">	<META NAME="GENERATOR" Content="Symantec Visual Page Mac 1.1.1">	<TITLE>Teach Yourself Visual C++ 6 in 21 Days -- Ch 17 -- Sharing Your Functionality with Other Applications--Creating DLLs</TITLE></HEAD><BODY TEXT="#000000" BGCOLOR="#FFFFFF"><H1 ALIGN="CENTER"><IMG SRC="../button/sams.gif" WIDTH="171" HEIGHT="66" ALIGN="BOTTOM"BORDER="0"><BR>Teach Yourself Visual C++ 6 in 21 Days</H1><CENTER><P><A HREF="../ch16/ch16.htm"><IMG SRC="../button/previous.gif" WIDTH="128" HEIGHT="28"ALIGN="BOTTOM" ALT="Previous chapter" BORDER="0"></A><A HREF="../ch18/ch18.htm"><IMGSRC="../button/next.gif" WIDTH="128" HEIGHT="28" ALIGN="BOTTOM" ALT="Next chapter"BORDER="0"></A><A HREF="../index.htm"><IMG SRC="../button/contents.gif" WIDTH="128"HEIGHT="28" ALIGN="BOTTOM" ALT="Contents" BORDER="0"></A> <HR></CENTER><H1 ALIGN="CENTER">- 17 -<BR>Sharing Your Functionality with Other Applications--Creating DLLs</H1><H1></H1><UL>	<LI><A HREF="#Heading1">Why Create DLLs?</A>	<UL>		<LI><A HREF="#Heading2">Creating and Using DLLs</A>		<LI><A HREF="#Heading3">Designing DLLs</A>	</UL>	<LI><A HREF="#Heading4">Creating and Using an MFC Extension DLL</A>	<UL>		<LI><A HREF="#Heading5">Creating the MFC Extension DLL</A>		<LI><A HREF="#Heading6">Adapting the Test Application</A>		<LI><A HREF="#Heading7">Changing the DLL</A>	</UL>	<LI><A HREF="#Heading8">Creating and Using a Regular DLL</A>	<UL>		<LI><A HREF="#Heading9">Creating the Regular DLL</A>		<LI><A HREF="#Heading10">Adapting the Test Application</A>	</UL>	<LI><A HREF="#Heading11">Summary</A>	<LI><A HREF="#Heading12">Q&amp;A</A>	<LI><A HREF="#Heading13">Workshop</A>	<UL>		<LI><A HREF="#Heading14">Quiz</A>		<LI><A HREF="#Heading15">Exercises</A>	</UL></UL><P><HR SIZE="4"><BR>Yesterday you learned how you could create a set of functionality that might be usefulfor multiple applications and how you could package it in a library file that couldbe linked into those applications. Today you will learn how to do this same thing,only with a much more dynamic package.</P><P>Often, a family of applications will have some functionality in common. When youplace this shared functionality into DLLs instead of library modules, all the applicationscan use the same functionality with only a single copy of the functionality distributedin the form of DLLs, instead of duplicating the same functionality in each of theapplications. This method saves disk space on any systems where the applicationsare installed.</P><P>Today, you will learn</P><P><UL>	<LI>About the different types of DLLs that you can create with Visual C++ and how	to determine which type best suits your needs.	<P>	<LI>How to build two of these types of DLLs and the different approaches for the	various DLL types.	<P>	<LI>How to use the functionality for both of these types of DLLs in a Visual C++	application.	<P>	<LI>How to determine when an application needs to be relinked when you make modifications	to a DLL that is used by the application.</UL><H2><A NAME="Heading1"></A>Why Create DLLs?</H2><P>Dynamic link libraries (DLL) were introduced by Microsoft back in the early daysof Windows. DLLs are similar to library modules in that they both contain sets offunctionality that have been packaged for use by applications. The difference iswhen the applications link to the library. With a library module (LIB), the applicationis linked to the functionality in the library during the compile and build process.The functionality contained in the library file becomes part of the application executablefile. With a DLL, the application links to the functionality in the library filewhen the application is run. The library file remains a separate file that is referencedand called by the application.</P><P>There are several reasons for creating DLLs instead of library module files. First,you can reduce the size of the application executable files by placing functionalitythat is used by multiple applications into DLLs that are shared by all of the applications.You can update and modify functionality in the DLLs without having to update theapplication executable (assuming that the exported interface for the DLL doesn'tchange). Finally, you can use DLLs with just about any other Windows programminglanguage, which makes your functionality available to a wider number of programmers,not just fellow Visual C++ programmers.</P><P><H3><A NAME="Heading2"></A>Creating and Using DLLs</H3><P>DLLs are library files with compiled code that can be used by other applications.The DLLs expose certain functions and classes to these applications by exportingthe function. When a function is exported, it is added to a table that is includedin the DLL. This table lists the location of all exported functions contained inthe DLL, and it is used to locate and call each of these functions. Any functionsthat are not exported are not added to this table, and they cannot be seen or calledby any outside application or DLL.</P><P>An application can call the functions in the DLL in two ways. The more involvedmethod of calling these functions is to look up the location of the desired functionin the DLL and get a pointer to this function. The pointer can then be used to callthe function.</P><P>The other, much easier way (and the only way that you'll use in any of the examplesin this book) is to link the application with the LIB file that is created with theDLL. This LIB file is treated by the linker as a standard library file, just likethe one that you cre-ated yesterday. However, this LIB file contains stubs for eachof the exported functions in the DLL. A stub is a pseudo-function that has the samename and argument list as the real function. In the interior of the function stubis a small amount of code that calls the real function in the DLL, passing all ofthe arguments that were passed to the stub. This allows you to treat the functionsin the DLL as if they were part of the application code and not as a separate file.</P><BLOCKQUOTE>	<P><HR><STRONG>NOTE:</STRONG> The LIB file for a DLL is automatically created for the DLL during	the compiling of the DLL. There is nothing extra that you need to do to create it.<HR>	<P><HR><STRONG>TIP:</STRONG> Not only is it easier to create your applications using the LIB files	for any DLLs that you will be using, but also it can be safer when running the application.	When you use the LIB files, any DLLs that are used by your application are loaded	into memory the moment the application is started. If any of the DLLs are missing,	the user is automatically informed of the problem by Windows, and your application	does not run. If you don't use the LIB files, then you are responsible for loading	the DLL into memory and handling any errors that occur if the DLL cannot be found.<HR></BLOCKQUOTE><P>There are two types of DLLs that you can easily create using Visual C++. Thesetwo types are MFC extension DLLs and regular DLLs.</P><BLOCKQUOTE>	<P><HR><STRONG>NOTE:</STRONG> You can create other types of DLLs using Visual C++. All these other	types of DLLs involve a significant amount of ActiveX functionality, so they are	beyond the scope of this book. If you need to build ActiveX in-process server DLLs,	or other types of ActiveX DLLs, I recommend that you find an advanced book on Visual	C++ that provides significant coverage for these topics.<HR></BLOCKQUOTE><H4>MFC Extension DLLs</H4><P>MFC DLLs are the easiest to code and create because you can treat them just likeany other collection of classes. For any classes that you want to export from theDLL, the only thing that you need to add is the AFX_EXT_CLASS macro in the classdeclaration, as follows:</P><P><PRE>class AFX_EXT_CLASS CMyClass{...};</PRE><P>This macro exports the class, making it accessible to Visual C++ applications.You need to include this macro in the header file that is used by the applicationsthat will use the DLL, where it will import the class from the DLL so that it canbe used.</P><P>The one drawback to creating MFC extension DLLs is that they cannot be used byany other programming languages. They can be used with other C++ compilers as longas the compiler supports MFC (such as with Borland's and Symantec's C++ compilers).</P><P><H4>Regular DLLs</H4><P>The other type of DLL is a regular DLL. This type of DLL exports standard functionsfrom the DLL, not C++ classes. As a result, this type of DLL can require a littlemore thought and planning than an MFC extension DLL. Once inside the DLL, you canuse class

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色偷偷88欧美精品久久久| 精品无人区卡一卡二卡三乱码免费卡 | 国产婷婷色一区二区三区| 麻豆成人av在线| 久久综合999| 国产a区久久久| 国产精品短视频| 欧美午夜精品一区| 免费观看在线色综合| 国产午夜精品美女毛片视频| 成人三级在线视频| 亚洲毛片av在线| 欧美疯狂性受xxxxx喷水图片| 免费精品99久久国产综合精品| 久久久午夜精品| 色偷偷一区二区三区| 石原莉奈在线亚洲二区| 精品国产乱码久久久久久图片 | 国产福利精品导航| 亚洲女爱视频在线| 欧美变态tickle挠乳网站| 成人晚上爱看视频| 日韩中文字幕不卡| 国产日韩欧美高清在线| 欧美三级在线播放| 国产91丝袜在线观看| 亚洲va欧美va国产va天堂影院| 久久色.com| 欧美三级欧美一级| 成人黄色在线看| 美女在线观看视频一区二区| 国产精品青草综合久久久久99| 欧洲一区二区av| 精品在线免费观看| 亚欧色一区w666天堂| 国产欧美日韩精品在线| 3d成人h动漫网站入口| 成人污污视频在线观看| 蜜桃久久久久久久| 亚洲最新在线观看| 中文字幕免费不卡| 精品区一区二区| 成人综合婷婷国产精品久久蜜臀 | 精品国产一区二区精华| 色婷婷亚洲婷婷| 福利一区福利二区| 男人的j进女人的j一区| 亚洲自拍偷拍网站| 欧美激情一区二区三区蜜桃视频 | 欧美午夜精品久久久久久孕妇| 国产成人av在线影院| 日产国产欧美视频一区精品| 综合分类小说区另类春色亚洲小说欧美| 欧美大胆一级视频| 欧美精品丝袜久久久中文字幕| 91在线精品一区二区| 国产精品亚洲а∨天堂免在线| 免费人成网站在线观看欧美高清| 亚洲一区二区三区中文字幕在线| 自拍偷自拍亚洲精品播放| 中文字幕高清不卡| 国产亚洲欧美日韩在线一区| 26uuu成人网一区二区三区| 制服丝袜中文字幕一区| 欧美日韩一区精品| 欧美日韩国产系列| 欧美日韩精品久久久| 精品视频色一区| 欧美日韩中文一区| 欧美日本在线一区| 在线电影国产精品| 欧美肥妇bbw| 91麻豆精品国产91久久久久 | 色婷婷激情综合| 色悠悠亚洲一区二区| 91丨九色丨国产丨porny| 99综合影院在线| 成+人+亚洲+综合天堂| 成人av在线播放网站| 本田岬高潮一区二区三区| 成年人国产精品| 97久久久精品综合88久久| 91社区在线播放| 日本韩国精品在线| 在线不卡欧美精品一区二区三区| 欧美日韩aaa| 亚洲精品在线免费播放| 国产拍欧美日韩视频二区 | 亚洲伊人伊色伊影伊综合网| 亚洲精品ww久久久久久p站| 亚洲中国最大av网站| 婷婷综合在线观看| 青青青爽久久午夜综合久久午夜| 韩国av一区二区三区四区| 国产成人综合自拍| 91国内精品野花午夜精品| 欧美日韩一区二区三区高清| 欧美久久婷婷综合色| 久久夜色精品一区| 成人免费一区二区三区视频| 亚洲成人一区二区在线观看| 久久国产精品区| www.综合网.com| 欧美精品三级在线观看| 国产无遮挡一区二区三区毛片日本| 国产精品久久久久aaaa| 婷婷丁香激情综合| 国产一区二区三区av电影| 色综合网站在线| 日韩免费观看2025年上映的电影 | 美女诱惑一区二区| 99re视频这里只有精品| 51午夜精品国产| 国产精品国产三级国产普通话99| 一区二区三区精密机械公司| 韩国欧美一区二区| 欧洲激情一区二区| 国产欧美中文在线| 天堂在线亚洲视频| 不卡的av网站| 日韩欧美的一区二区| 亚洲欧美日韩在线播放| 蓝色福利精品导航| 欧美综合久久久| 国产亚洲精品久| 奇米888四色在线精品| 91蜜桃视频在线| 久久久午夜精品理论片中文字幕| 亚洲一区在线观看网站| 国产老女人精品毛片久久| 欧美视频在线播放| 亚洲欧洲另类国产综合| 国内精品伊人久久久久av一坑| 欧美色大人视频| 成人欧美一区二区三区在线播放| 精品亚洲成a人在线观看| 欧美日韩色综合| 樱花影视一区二区| 成人av在线一区二区三区| 久久蜜桃av一区二区天堂| 视频一区在线播放| 欧美日韩三级在线| 一区二区三国产精华液| 成人蜜臀av电影| 久久综合九色综合97婷婷女人| 亚洲bt欧美bt精品| 色吧成人激情小说| 国产精品乱码人人做人人爱| 国产一区二区三区在线观看精品| 欧美美女直播网站| 亚洲在线视频免费观看| 色综合久久综合中文综合网| 国产精品伦理在线| 成人免费av资源| 国产精品污www在线观看| 国产一区中文字幕| 久久午夜羞羞影院免费观看| 日本大胆欧美人术艺术动态| 欧美日韩精品一区二区三区蜜桃| 一区二区三区在线视频播放| 一本高清dvd不卡在线观看| 亚洲品质自拍视频| 91丨九色丨蝌蚪富婆spa| 亚洲视频在线一区二区| 99精品欧美一区二区三区综合在线| 国产精品美女www爽爽爽| 成人免费精品视频| 国产精品国产自产拍高清av王其| 成人久久18免费网站麻豆| 国产精品久久毛片| 色综合久久六月婷婷中文字幕| 亚洲色图.com| 欧洲一区在线电影| 三级一区在线视频先锋 | 欧美三区在线观看| 午夜欧美视频在线观看 | 久久久久久9999| 东方aⅴ免费观看久久av| 中文一区二区完整视频在线观看| 成人性生交大片免费看视频在线 | 久久久蜜桃精品| 国产成人av一区二区三区在线 | 国产在线视频一区二区| 久久午夜老司机| 不卡av在线免费观看| 亚洲精品国产精品乱码不99| 欧美日韩专区在线| 久久精品国产精品青草| 欧美高清在线精品一区| 色偷偷久久人人79超碰人人澡| 午夜精品久久久久| 久久一区二区三区四区| 91香蕉视频黄| 丝袜亚洲另类欧美| 欧美国产日韩精品免费观看| 色狠狠色噜噜噜综合网| 蜜桃传媒麻豆第一区在线观看| 中文字幕av一区二区三区免费看| 色婷婷精品大在线视频| 麻豆精品一区二区三区|