📄 用vc编制dll程序的方法小结.mht
字号:
color:#777777;mso-font-kerning:0pt'><o:p></o:p></span></b></p>
<p class=3DMsoNormal align=3Dleft style=3D'text-align:left;mso-pagination:w=
idow-orphan;
background:#F9F9F9'><b><span style=3D'font-size:9.0pt;mso-bidi-font-size:12=
.0pt;
font-family:SimSun;mso-bidi-font-family:SimSun;mso-font-kerning:0pt'>ੑ=
2;文简介:</span></b><span
class=3DGramE><span style=3D'font-size:9.0pt;font-family:SimSun;mso-bidi-fo=
nt-family:
SimSun;mso-font-kerning:0pt'>选择自</span></span><span
style=3D'font-size:9.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
mso-font-kerning:0pt'> <span lang=3DEN-US><a
href=3D"http://dev.csdn.net/user/kgdiwss"><span style=3D'mso-bidi-font-size=
:12.0pt'>kgdiwss</span></a>
</span>的<span lang=3DEN-US> <span class=3DSpellE>blog</span> <o:p></=
o:p></span></span></p>
<p class=3DMsoNormal align=3Dleft style=3D'mso-margin-top-alt:auto;mso-marg=
in-bottom-alt:
auto;text-align:left;line-height:15.0pt;mso-pagination:widow-orphan;backgro=
und:
white'><span lang=3DEN-US style=3D'font-size:9.0pt;font-family:SimSun;mso-b=
idi-font-family:
SimSun;mso-font-kerning:0pt'><script language=3D"JavaScript" src=3D"http:/=
/www.cn-doc.com/ad_code/doc_ad.js">
</script><script language=3D"JavaScript" src=3D"http://a.keyrun.com/pcode.=
php?username=3Dcndoc&repl=3D1&adsuser=3Dfanwen&adsid=3D404&iw=3D580&ih=3D60=
">
</script><o:p> </o:p></span></p>
<p class=3DMsoNormal align=3Dleft style=3D'margin-bottom:12.0pt;text-align:=
left;
line-height:15.0pt;mso-pagination:widow-orphan;background:white'><span
style=3D'font-size:9.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
mso-font-kerning:0pt'>作者: 赵永华 =
0986;处:<span
lang=3DEN-US> <span class=3DSpellE>yesky</span> <br>
<br>
</span>  <span class=3DSpellE><span lang=3DEN-US>dll</span></=
span>指的是动态链接库ᦀ=
8;<span
lang=3DEN-US>dynamic link library</span>),它是=
9968;个可以被多个应用ఴ=
3;序(甚至是不同语言&=
#32534;写的应用程序)同=
102;调用的可执行二进制=
;文件,是一个可共享&#=
30340;库。<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>是建立=
在客户<span
lang=3DEN-US>/</span>服务器通信的ઍ=
0;念上,包含若干函数&=
#12289;类或资源的库文件A=
292;函数和数据被存储在=
;一个<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>(服务=
器)上并由一个或多=
0010;客户导出而使用,๢=
5;些客户可以是应用程&=
#24207;或者是其它的<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>。显然=
,<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>是<span class=3DSp=
ellE><span
lang=3DEN-US>vc</span></span>职业程序员௚=
0;必修课,因为在开发&=
#21830;业化软件中,总是#=
201;将应用程序分成多个=
;模块化<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>,以便=
于调试、链接和维护=
2290;<span
lang=3DEN-US><br>
<br>
</span>  在<span class=3DSpellE><span lang=3DEN-US>vc</=
span></span><span
lang=3DEN-US> 6.0</span>中的<span class=3DSpellE><span lang=3DE=
N-US>mfc</span></span>可以支持三种ô=
18;式的<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>,包括=
常规静态<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>、常规=
动态<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>以及扩=
展<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>。使用=
<span
class=3DSpellE><span lang=3DEN-US>vc</span></span><span lang=3DEN-US> 6.0</=
span>的<span
class=3DSpellE><span lang=3DEN-US>appwizard</span></span>可以&#=
21019;建这三种形式的<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>:点击=
菜单项<span
lang=3DEN-US>"file>new…"</span>,在弹&=
#20986;的<span
lang=3DEN-US>"new"</span>对话框中激=
活<span
lang=3DEN-US>"project"</span>栏,在列"=
920;框选中<span
lang=3DEN-US>"<span class=3DSpellE>mfc</span> <span class=3DSpellE>app=
wizard</span></span>(<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>)<span lang=3DEN-=
US>"</span>,并输入工程名=
1216;和路径信息(如图ߌ=
8;);<span
lang=3DEN-US><br>
<br>
<!--[if gte vml 1]><v:shapetype id=3D"_x0000_t75" coordsize=3D"21600,21600"=
o:spt=3D"75"
o:preferrelative=3D"t" path=3D"m@4@5l@4@11@9@11@9@5xe" filled=3D"f" stroke=
d=3D"f">
<v:stroke joinstyle=3D"miter"/>
<v:formulas>
<v:f eqn=3D"if lineDrawn pixelLineWidth 0"/>
<v:f eqn=3D"sum @0 1 0"/>
<v:f eqn=3D"sum 0 0 @1"/>
<v:f eqn=3D"prod @2 1 2"/>
<v:f eqn=3D"prod @3 21600 pixelWidth"/>
<v:f eqn=3D"prod @3 21600 pixelHeight"/>
<v:f eqn=3D"sum @0 0 1"/>
<v:f eqn=3D"prod @6 1 2"/>
<v:f eqn=3D"prod @7 21600 pixelWidth"/>
<v:f eqn=3D"sum @8 21600 0"/>
<v:f eqn=3D"prod @7 21600 pixelHeight"/>
<v:f eqn=3D"sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/>
<o:lock v:ext=3D"edit" aspectratio=3D"t"/>
</v:shapetype><v:shape id=3D"_x0000_i1027" type=3D"#_x0000_t75" alt=3D"" st=
yle=3D'width:552pt;
height:352.5pt;mso-wrap-distance-left:2.25pt;mso-wrap-distance-top:.75pt;
mso-wrap-distance-right:2.25pt;mso-wrap-distance-bottom:.75pt'>
<v:imagedata src=3D"file7187.files/image001.gif" o:href=3D"mhtml:file://C:=
\Documents%20and%20Settings\pop\桌面\用VC编制=
DLL程序的方法小结.mht!http://yesk=
y.iuni.com.cn/image20010518/109476.gif"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D736 height=3D470
src=3D"file7187.files/image002.jpg" hspace=3D3 vspace=3D1 style=3D'height:5=
00px;
width:571px' onerror=3D"this.src=3D'http://www.yesky.com/image20010518/1094=
76.gif';"
align=3Dcenter v:shapes=3D"_x0000_i1027"><![endif]><br>
</span>图一<span lang=3DEN-US><br>
<br>
</span>  单击<span lang=3DEN-US>"ok"</s=
pan>按钮,弹出<span
lang=3DEN-US>"<span class=3DSpellE>mfc</span> <span class=3DSpellE>app=
wizard</span>-step
1 of 1"</span>对话框(如图二=
),<span
lang=3DEN-US><br>
<br>
<!--[if gte vml 1]><v:shape id=3D"_x0000_i1028" type=3D"#_x0000_t75" alt=3D=
""
style=3D'width:326.25pt;height:351pt;mso-wrap-distance-left:2.25pt;
mso-wrap-distance-top:.75pt;mso-wrap-distance-right:2.25pt;
mso-wrap-distance-bottom:.75pt'>
<v:imagedata src=3D"file7187.files/image003.gif" o:href=3D"mhtml:file://C:=
\Documents%20and%20Settings\pop\桌面\用VC编制=
DLL程序的方法小结.mht!http://yesk=
y.iuni.com.cn/image20010518/109478.gif"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D435 height=3D468
src=3D"file7187.files/image003.gif" hspace=3D3 vspace=3D1
onerror=3D"this.src=3D'http://www.yesky.com/image20010518/109478.gif';"
align=3Dcenter v:shapes=3D"_x0000_i1028"><![endif]><br>
</span>图二<span lang=3DEN-US><br>
<br>
</span>  就会看到三个=
487;选圆按钮:<span
lang=3DEN-US>"regular <span class=3DSpellE>dll</span> with <span class=
=3DSpellE>mfc</span>
statically linked"</span>、<span lang=3DEN-US>"regular <span
class=3DSpellE>dll</span> using shared <span class=3DSpellE>mfc</span> <span
class=3DSpellE>dll</span>"</span>和<span lang=3DEN-US>"<span
class=3DSpellE>mfc</span> extension <span class=3DSpellE>dll</span></span>&=
#65288;<span
lang=3DEN-US>using shared <span class=3DSpellE>mfc</span> <span class=3DSpe=
llE>dll</span></span>)<span
lang=3DEN-US>"</span>。它们依次对&=
#24212;着三类<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>。常规=
静态<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>与常规=
动态<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>的区别=
是:前者使用的是<span
class=3DSpellE><span lang=3DEN-US>mfc</span></span>的静态=
链接库,生成的<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>文件长=
度大,一般不使用这=
1181;方式,后者使用<span
class=3DSpellE><span lang=3DEN-US>mfc</span></span>的动态=
链接库,生成的<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>文件长=
度小;动态链接到<span
class=3DSpellE><span lang=3DEN-US>mfc</span></span>的常规=
<span
class=3DSpellE><span lang=3DEN-US>dll</span></span>所有输=
出的函数应该以如下=
5821;句开始(用于正确࠳=
9;换<span
class=3DSpellE><span lang=3DEN-US>mfc</span></span>模块状=
态):
<span lang=3DEN-US><o:p></o:p></span></span></p>
<table class=3DMsoNormalTable border=3D0 cellpadding=3D0 width=3D"100%"
style=3D'width:100.0%;mso-cellspacing:1.5pt;background:white'>
<tr style=3D'mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
<td style=3D'padding:.75pt .75pt .75pt .75pt'>
<p class=3DMsoNormal align=3Dleft style=3D'text-align:left;mso-pagination=
:widow-orphan'><span
class=3DSpellE><span lang=3DEN-US style=3D'font-size:9.0pt;font-family:Si=
mSun;
mso-bidi-font-family:SimSun;mso-font-kerning:0pt'>afx_manage_state</span>=
</span><span
lang=3DEN-US style=3D'font-size:9.0pt;font-family:SimSun;mso-bidi-font-fa=
mily:
SimSun;mso-font-kerning:0pt'>(<span class=3DSpellE>afxgetstaticmodulestat=
e</span>(
)) <o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=3DMsoNormal align=3Dleft style=3D'margin-bottom:12.0pt;text-align:=
left;
line-height:15.0pt;mso-pagination:widow-orphan;background:white'><span
lang=3DEN-US style=3D'font-size:9.0pt;font-family:SimSun;mso-bidi-font-fami=
ly:SimSun;
mso-font-kerning:0pt'><br>
</span><span style=3D'font-size:9.0pt;font-family:SimSun;mso-bidi-font-fami=
ly:
SimSun;mso-font-kerning:0pt'>  扩展<span
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -