先弄清这门课解决什么问题
很多做Windows桌面端或者底层工具的人,真正卡壳的地方往往不是业务逻辑,而是模块拆分和接口对接。动态链接库在日常开发里太常见了,但一旦遇到跨语言调用、导出类封装、或者排查加载失败的报错,很多人就只能到处翻零散的博客。这门课针对的就是这种“知道点皮毛但真上手就出错”的状态。它不跟你讲虚的架构理念,而是把DLL从生成到被外部程序调用的整条链路拆开,重点解决一个核心场景:怎么把一段功能封装成独立的动态库,再让别的程序稳妥地调用它,包括带参数的函数调用和导出类的复杂情况。
适合什么基础以及怎么用好资料
这资料不适合完全没碰过编程的人。你得有基本的C或C++语法基础,知道变量、函数、类是怎么回事,最好自己写过能在Windows上跑起来的简单控制台程序。如果你之前只做过纯上层业务,没接触过编译链接的底层细节,看这课刚好能补上这块。建议拿到资料后,先看原理说明那一节,建立对加载机制的整体认知,别上来就跟着敲代码。接着直接跳到使用dumpbin查看dll和exe那部分,把工具用熟,这是后面排查问题的抓手。然后顺着无参DLL的两种加载方式往下看,重点对比初始化加载和随用随加载的区别。带参数的函数调用和C++调用C语言DLL的处理技巧这两块,建议边看边在自己机器上跑一遍,体会跨语言调用时符号导出的坑。最后再看导出类和类库设计,这部分稍微抽象,需要前面基础打牢才好理解。
学完能独立做什么
跟着把资料里的练习做完,你应该能独立干几件具体的事。一是拿到一个陌生的DLL,能用工具查看它导出了哪些函数和参数,不再两眼一抹黑。二是自己能把一段核心逻辑封装成DLL,根据实际场景选择是隐式链接还是显式加载,并且处理好带参数的函数导出。三是遇到C和C++混合调用时的符号兼容问题,知道怎么用标准方式处理,不至于编译报错了还不知道往哪查。更进一步,在理解了导出类之后,你能尝试做点简单的类库封装,把功能模块按工业化的思路拆分。资料里给的示例代码别光看,一定要自己改改参数和导出方式,重新编译跑通,这样遇到真实项目里的链接报错,你才不会慌。
课程目录
课程目录33 集
- 1 七日成蝶课程体系说明(2020) (20:53).mp4
- 2 课程概览,学我所需 (05:47).mp4
- 3 原理说明与初步接触 (31:58).mp4
- 4 从HelloWorld开始 (07:15).mp4
- 5 使用dumpbin查看dll和exe (07:05).mp4
- 6 初始化加载法调用无参Dll (08:19).mp4
- 7 随用随加载法调用动态链接库 (11:59).mp4
- 8 导出函数带参数的dll (08:38).mp4
- 9 初始化加载法调用函数带参数的DLL (07:39).mp4
- 10 隐式调用带参函数的DLL (09:23).mp4
- 11 C++调用C语言DLL的处理技巧 (07:30).mp4
- 12 C++生成DLL及C语言的区别 (04:07).mp4
- 13 C++调用C++生成的DLL (05:28).mp4
- 14 DLL导出类 (05:35).mp4
- 15 C++调用导出类 (03:59).mp4
- 16 类库的工业化设计(上) (10:15).mp4
- 17 类库的工业化设计(下) (11:18).mp4
- 18 通过向导自动生成DLL (04:22).mp4
- 19 入口函数四种情况详解 (17:47).mp4
- 20 安装C#、VB、Python (03:34).mp4
- 21 __cdecl与__stdcall (07:37).mp4
- 22 通过def文件规范C语言导出符号 (05:07).mp4
- 23 通过def文件规范C++函数导出符号 (01:56).mp4
- 24 通过def文件规范C++带参函数导出符号 (05:03).mp4
- 25 C#调用DLL无参函数 (12:41).mp4
- 26 C#无法直接调用C++的导出函数 (04:38).mp4
- 27 C#调用通过def导出的C++动态链接库 (02:51).mp4
- 28 C#调用有参导出函数(上) (06:36).mp4
- 29 C#调用有参导出函数(下) (03:18).mp4
- 30 VB调用Dll动态链接库(上) (07:44).mp4
- 31 VB调用Dll动态链接库(下) (10:42).mp4
- 32 Python调用Dll动态链接库(上) (05:38).mp4
- 33 Python调用Dll动态链接库(下) (02:44).mp4






