C-3

作者: x92n | 来源:发表于2022-06-11 15:46 被阅读0次

    DLL-动态链接库

    lib-静态链接库

    编译成obj文件之后,将多个obj文件连接成lib文件。当程序用到lib里面的函数时,只需要指定函数名称,当链接的时候,链接器会自动到lib文件中找函数的实体,把它链接过来,叫做静态链接。

    静态链接的缺点是浪费内存和磁盘空间,因为用多少次静态库的代码,就会包含多少分同样的代码。
    因为Windows是多任务的,多个进程可能用同一个函数,所以用DLL-动态链接库。
    DLL链接的时候,代码不会插到代码中去,在程序运行的时候,才会把DLL中的代码加载到内存中,供程序使用。
    物理内存中只保留一份动态链接库的代码,当多个程序使用,使用分页机制将这份代码映射到不同进程的虚拟进程空间里。
    函数中要使用动态链接库,必须包含DLL的库名和函数名
    一个文件是否为动态链接库,取决于文件结构,系统里面包含公用代码的模块,不管后缀名是什么,都可以是DLL
    DLL映射到程序的地址空间里面的,可以看成和程序是一体的,DLL可以使用程序的资源,程序可以使用DLL的资源,所以可以把DLL注入到程序中。

    DLL如何写?

    在vs2019中,右击项目,点属性----配置属性----常规----配置类型---改为dll

    #include <Windows.h>
    
    _declspec(dllexport) void nai(){
        MessageBoxA(0, "naizi", "naizi", 0);
    }
    

    相关文章

      网友评论

          本文标题:C-3

          本文链接:https://www.haomeiwen.com/subject/xyummrtx.html