| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> C++ 控制台程序,窗口程序,静态库,动态库的区别 -> 正文阅读 |
|
[开发工具]C++ 控制台程序,窗口程序,静态库,动态库的区别 |
创建C++程序 控制台程序?创建完成发现编译器给我们生成了一个.cpp文件,并且存在main函数(说明可以运行) ?按F5编译链接并运行?出现DOS窗口(但我们说写与窗口相关的代码,说明是操作系统提供的) ?输出目录生成的文件 窗口程序创建完成我们发现生成了许多文件 ?打开.cpp文件我们发现了许多处理窗口的代码,并包含一个main函数 F5运行生成了一个新窗口(该窗口由我们自己定义),并且可以与用户交互? ?输出目录生成的文件 ?静态库程序静态库程序一般用来存放代码或者数据,可以执行文件可以获取静态库程序的数据 ?生成完发现静态库程序并没有main函数 ?按F5发现编译链接成功,但无法启动程序(因为没有main函数) ?输出目录生成的文件 动态库程序?创建成功发现动态库程序也是存在入口函数的(DLLMain) F5运行出现于静态库程序一样的错误,并且编译链接都已完成, ?输出目录生成的文件 对比结果? ? ? ? 1:入口函数 ? ? ? ? ? ? ? ? 控制台程序 - main ? ? ? ? ? ? ? ? 窗口程序 - WinMain ? ? ? ? ? ? ? ? 动态库程序 - DllMain ? ? ? ? ? ? ? ? 静态库程序 - 无口函数 ? ? ? ? 2:生成的产物???????????????? ? ? ? ? ? ? ? ? 控制台程序 - exe文件 ? ? ? ? ? ? ? ? 窗口程序 - exe文件 ? ? ? ? ? ? ? ? 动态库程序 - DLL文件 ? ? ? ? ? ? ? ? 静态库程序 - Lib文件 ? ? ? ? 3:作用???????????????? ? ? ? ? ? ? ? ? 控制台程序 - DOS程序,本身没有窗口,通过系统提供的DOS窗口执行 ? ? ? ? ? ? ? ? 窗口程序 - 拥有自己的窗口,并可以与用户交互 ? ? ? ? ? ? ? ? 动态库程序 - 存放代码和和数据,供可执行文件调用, ? ? ? ? ? ? ? ? 静态库程序 - 存放代码和和数据,供可执行文件调用 ? ? ? ? 4:静态库与动态库的区别 ? ? ? ? ? ? ? ? 静态库:编译器在编译链接时会把在使用静态库的地方,将源码从静态库中原封不动的拷贝到可执行文件中(exe),这将会导致.exe文件体积变大,由于是拷贝的源码,所以在发布后并不需要静态库的支持就可以运行。???????????????????????????????? ? ? ? ? ? ? ? ? 动态库:当可执行文件在运行时使用到了动态库,此时会在该进程的某个地址加载该动态库,提取所需要的函数或数据,若使用之后在不需要的时候也可以卸载(使用动态库里的某个函数),并且可以被多个进程调用,由于是动态加载,在发布时并没有添加到可执行文件中,所以体积会小一些。并且具有强依赖关系。 ? ? ? ? ? ? ? ? ? ?静态库不能在包含其他的动态库文件或者静态库文件。而动态库却可以。 ???????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:24:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |