110922 knoss-vol26-c++运行库

992 views
912 views

Published on

{9月22日语音讲座vol.26}杨军: C++运行库理解
http://bbs.code.ijinshan.com/thread-1374-1-1.html

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
992
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

110922 knoss-vol26-c++运行库

  1. 1. 了解 C/C++ 运行库 杨 军
  2. 2. 主要分享内容 1 C/C++ 运行库是什么 2 C/C++ 运行库的功能 3 如何减小软件的大小
  3. 3. C/C++ 运行库是什么 每一个 C/C++ 程序,它的背后都有一套庞大的代码来进行支撑,以使得该程序能够正常运行。这套代码就是 C/C++ 运行库。 C/C++ 运行库由编绎器提供。 它主要有两个作用:实现 C/C++ 标准库函数的和实现 C/C++ 语言的一些机制。
  4. 4. 实现 C/C++ 标准库函数 C/C++ 运行库的大部分代码都是在实现 C,C++ 标准库函数 , 如 : printf, fopen, malloc, strlen, time, _beginthreadex,std::string 等。 1. 标准库函数与 Windows API 的关系 2. 需要注意的一些函数。 a. 使用了 TLS 的库函数 , 比如 _localtime64 b. _beginthreadex 和 CreateThread() 3. 动态链接 (MD) 与静态链接 (MT) 。 a: 链接错误,大部分是因为 lib 的编绎方式不一 致。 b: 模块间内存释放 , 谁分配谁释放。
  5. 5. 实现 C/C++ 语言机制 C/C++ 运行库实现了 C/C++ 语言自身的一些语言机制,比如 main 函数进入前全局变量要完成构造。静态变量的只能初始化一次,异常处理机制等。1. 全局变量及类中静态成员变量的初始化。2. 应用程序的入口函数。3. 静态变量的初始化
  6. 6. 如何减小软件的 Size1. 模块数非常多,使用 MD 编绎2. 模块数非常少,使用 MT 编绎3. 使用 VC6 运行库。4. 不使用 CRT
  7. 7. Thank you ! 推荐书籍 : 1. 《程序员的自我修养》 2. 《 windows 核心编 程》

×