a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 53|回复: 0

[C语言] C技巧:VC中编译、运行程序的知识点(4)

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
C技巧:VC中编译、运行程序的知识点(4)
" w7 X% F* ?1 A( H/ d; K3 ]  {. I5、MFC的库文件: n/ O5 k0 x& K1 F( L% B1 Y
  MFC的库可以静态链接,也可以动态链接。静态库和动态库又有Debug和Release,ANSI和Unicode版本之分。: |1 ~) D3 G& `& y% O! k! f7 H
  静态MFC库主要有:$ `2 g5 F- p4 v  J8 ^) o2 O( v) m
  ANSI Debug NAFXCWD.LIB
# f( |3 u7 c3 a. Y- \* d  ANSI Release NAFXCW.LIB
; Y/ T9 w% \2 r' n' P& W  N  Unicode Debug UAFXCWD.LIB* |; f. z1 v6 r# R
  Unicode Release UAFXCW.LIB: ?7 @. F, H  a. j: j
  动态链接库主要有;1 k# v  z9 y* C
  ANSI Debug MFCxxD.LIB (core,MFCxxD.DLL),
; G& j6 C  o1 b# h6 b  MFCOxxD.LIB (OLE,MFCOxxD.DLL),8 R. q% z+ f8 q( P5 l" [: U
  MFCDxxD.LIB (database,MFCDxxD.DLL),* c( U& s: w" \% t, a# C( l3 g1 V0 N
  MFCNxxD.LIB (network,MFCNxxD.DLL),
( X7 [9 B% _+ f) p  MFCSxxD.LIB (static)' O* Q) p( A- q. d/ A
  ANSI Release MFCxx.LIB (combined,MFCxx.DLL)# i% @5 O+ {1 T% j' v# K
  MFCSxx.LIB (static)6 n* R8 @- X* t
  Unicode Debug MFCxxUD.LIB (core,MFCxxUD.DLL),
2 Z" T8 M, \0 J* h  }3 H7 q# I$ ^  MFCOxxUD.LIB (OLE,MFCOxxUD.DLL),+ l9 Q4 y2 m7 @- b" N% G
  MFCDxxUD.LIB (database,MFCDxxUD.DLL),9 z2 [1 K3 e. }, Z( i4 X+ a
  MFCNxxUD.LIB (network,MFCNxxUD.DLL),+ c+ Z9 ]9 U# `% @. n5 ?
  MFCSxxUD.LIB (static). `$ |/ c/ k7 A3 I8 g- Y* t' I
  Unicode Release MFCxxU.DLL (combined,MFCxxU.DLL),
2 {, _; {& Z; M" q; h! F: O  MFCSxxU.LIB (static)
9 X' l; [( c" F% r  J4 i  上面的LIB文件除了MFCSxx(D、U、UD).LIB以外都是导入库。. v! f1 u  @* U$ B
  MFC动态链接库版本也需要静态链接一些文件,这些文件就放在MFCSxx(D、U、UD).LIB中。例如包含_tWinMain的appmodul.cpp。
' c2 A3 |6 S* ~6 ]6 O6 _  6、结束语
0 }+ Y; i) N4 \( X  研究这些问题的动机是想弄清楚我们的程序是如何装载、运行的。但是,由于Windows不是开源平台,考试大提示只能研究到PE文件(Windows上可执行文件的格式)。entry point、subsystem都是PE文件头的一部分。& C% s+ w/ k6 P
  Windows在进入PE文件的entry point之前做了些什么,就看不到了,只能大概推测:应该是创建一个进程,装载PE文件和所有需要的DLL,初始化C变量,然后从某个起点函数开始运行。不同的subsystem,应该有不同的起点。调用这个起点函数时应该传入PE文件的entry point地址。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-22 18:10 , Processed in 0.273031 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表