zoukankan      html  css  js  c++  java
  • c/c++创建动态库

    上一篇 用的命令

    cl /c xx.cpp    //编译成obj
    link /dll /out:mou1.dll x.obj   //链接生成dll 文件

    cpp 的导入可以直接声明 导出函数

    extern "C"  __declspec(dllexport) void mou1()
    {
        puts("mou1");
    }

     不需要加

    __declspec(dllexport)
    也可以在当前文件里面写def 导出文件

    接着命令 导出函数

    link /dll /def:mou.def /out:mou1.dll x.obj

    dumpbin /exports mou1.dll

    查看导出函数

     写代码调用dll

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    
    
    typedef void (*fun)();
    
    int main()
    {
        //mou1();
        //加载这个dll
        HMODULE hModule=LoadLibrary(L"mou1.dll");
        //获取导出函数地址
        fun pfn = (fun)GetProcAddress(hModule, "mou1");
        printf("%p", pfn);
        if (pfn!=NULL)
        {
            pfn();
        }
        //卸载
        FreeLibrary(hModule);
        system("pause");
    }

    如果要导出类必须需要用  关键字

    __declspec(dllexport) 

     但是也是以函数形式导出的 构造函数,析构函数。。

    从此山高路远,纵马扬鞭。愿往后旅途,三冬暖,春不寒,天黑有灯,下雨有伞。此生尽兴,不负勇往。
  • 相关阅读:
    基于nginx结合openssl实现https
    更新续约与重新登陆
    DNS服务器
    ELK日志分析系统。
    OpenSSH远程控制
    DHCP配置
    DHCP服务概述
    网络服务
    磁盘配额
    磁盘配额
  • 原文地址:https://www.cnblogs.com/feizianquan/p/15113990.html
Copyright © 2011-2022 走看看