• 静态库和动态库的使用


    1.静态库使用比较简单,就两步

    @1包含静态库头文件#include "文件名"

    @2预处理加载静态库 #pragma comment(lib,"库文件名")

    2.再看动态库

    @1首先得有动态库文件,将动态库文件放在源码目录(不然后面加载得传入文件路径),这是我的动态库源文件内容

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<windows.h>
     4 
     5 //导出函数,加载的使用可以使用
     6 _declspec(dllexport) void popWindow()
     7 {
     8     MessageBoxA(0, "你好,世界", "唐嫣", 1);
     9 }
    10 
    11 _declspec(dllexport) int add(int a, int b)
    12 {
    13     return a + b;
    14 }

    @2包含windows头文件#include<windows.h>

    #include<stdio.h>
    #include<stdlib.h>
    #include<windows.h>

    @3声明指向要调用的函数的函数指针

    //定义函数指针来调用动态库,typedef简化函数指针类型定义
    typedef void(*ppop)();
    typedef int(*padd)(int, int);

    @4加载动态库

    HMODULE mydll = LoadLibraryA("动态库.dll");

    @5调用动态库模块函数

    ppop pw;//定义弹窗函数指针
    pw = (ppop)GetProcAddress(mydll, "popWindow");//获得动态库文件的模块(函数)的入口地址

    3.下面是调用动态库文件的全部源码

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<windows.h>
     4 
     5 //定义函数指针来调用动态库,typedef简化函数指针类型定义
     6 typedef void(*ppop)();
     7 typedef int(*padd)(int, int);
     8 
     9 
    10 void main()
    11 {
    12     HMODULE mydll = LoadLibraryA("动态库.dll");
    13     if (mydll == NULL)
    14     {
    15         printf("动态库加载失败");
    16     }
    17     else
    18     {
    19         //弹窗函数调用
    20         ppop pw;//定义弹窗函数指针
    21         pw = (ppop)GetProcAddress(mydll, "popWindow");//获得动态库文件的模块(函数)的入口地址
    22         if (pw != NULL)
    23         {
    24             pw();//调用
    25         }
    26 
    27         //求和函数调用
    28         padd pa;
    29         pa = (padd)GetProcAddress(mydll, "add");
    30         if (pa != NULL)
    31         {
    32             int m = pa(13, 16);
    33             printf("%d
    ", m);
    34         }
    35             
    36     }
    37 }

    4.查看运行结果,可见调用成功。

    需要程序源码的可以加我微信x241602私聊。
  • 相关阅读:
    推荐一些学习软件编程的网站
    Git总结笔记2-克隆远程仓库到本地
    Git总结笔记3-把本地仓库推送到github
    Git总结笔记1-搭建和使用30条简明笔记
    【师兄笔记】Java记录生活
    【师兄笔记】Java入门
    学习软件技术的那些事?
    Java编程基础
    献给还不知道怎么坚持的你
    GIT 检查、撤销修改简明教程
  • 原文地址:https://www.cnblogs.com/huipengbo/p/6919432.html
Copyright © 2020-2023  润新知