1.创建头文件mydll.h

#pragma once
//内部函数,动态库自己调用,其他程序不能调用
//外部函数,外部调用//__declspec(dllexport)导出函数
__declspec(dllexport) int myadd(int a, int b);

2.创建源文件mydll.c

#include "mydll.h"
int myadd(int a, int b) {return a + b;
}

3.右键项目,选择属性,在常规里将配置类型改为动态库(.dll)
4.右键项目,重新生成,在Debug文件夹下得到project.lib (对象文件库)和project.dll(动态库),库的名称是项目名称
我们需要把project.lib,project.dll文件和mylib.h发给别人使用

动态库使用

1.将动态库三个文件拷贝到当前项目文件夹下

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "mydll.h"//包含动态库的头文件
#pragma comment(lib,"./tesdll.lib")//导入动态库int main(int argc, char** argv)
{int res = myadd(10, 20);printf("%d\n", res);system("pause");return 0;
}

动态库的优点

编译时不引入,运行时引用,所以不占用空间

python调用动态库

python只需要把.dll文件复制到项目目录下即可

import ctypes
lib = ctypes.cdll.LoadLibrary("./tesdll.dll")
lib.myadd(10,20)

C语言 Win动态库相关推荐

  1. go编译库给c语言map参数,在 Go 中使用 C 语言的动态库

    我和我的儿子在上周末干了一件非常有意思的事情,我们开发了一个用 Go 编写的命令行游戏,最近我正在重写一款曾经在年轻时开发的游戏,当时用的还是 Kaypro II. ![](https://raw.g ...

  2. 易语言 标准c 动态库,易语言Dll动态库的开发

    一.关于易语言DLL 易语言Dll动态库的开发是编程当中和其他语言开发进行交互必不可少的方法之一,从易语言3.6版开始,已经能够支持对DLL动态链接库的开发, 编译出的DLL是标准的DLL,和其他编程 ...

  3. 【C 语言】动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )

    文章目录 一.在 Visual Studio 2019 中创建 " 控制台应用 " 程序 二.拷贝 xxx.lib.xxx.dll.xxx.h 到源码路径 三.导入 xxx.h 头 ...

  4. 手把手教你写C语言的动态库的开发

    前言 动态库的概念: 动态库提供了一种方法,使进程可以调用不属于其可执行代码的函数.函数的可执行代码位于一个 DLL 文件中, 该 DLL 包含一个或多个已被编译.链接并与使用它们的进程分开存储的函数 ...

  5. 【C 语言】动态库封装与设计 ( Windows 动态库简介 | Visual Studio 调用动态库 )

    文章目录 一.Windows 动态库简介 二.Visual Studio 调用动态库 一.Windows 动态库简介 在 C:\Windows\System32 目录中 , 存放着 Windows 中 ...

  6. C 语言与动态库相关基础知识

    1.导入文件<>和""的区别 #include <xxx.h>导入的是标准目录下的.h文件,所谓的标准目录指的是:/use/local/include(一般 ...

  7. C语言 gcc 动态库

    动态库编译例子 代码准备 |-- fn | |-- add.c | `-- sub.c |-- h | `-- head.h |-- lib `-- test.c add.c内容 int add(in ...

  8. 如何用C/C++生成一个为lua所用的动态库dll文件以及lua如何调用该dll(C语言的动态库)

    如果读者朋友想详细的了解lua与C的通信原理,请移步这里[https://www.zhangshengrong.com/p/ERNnAzWa5W/]: 先说两句废话:怪不得lua不火,因为它对我们新手 ...

  9. WIN动态库注入(远线程注入)

    所谓动态库注入是指,将自己编写的动态库,通过自己的程序来注入到别的进程中去,然后运行. 原理: 在目标进程,开辟一段内存,然后写入要注入的动态库.dll .然后让目标运行加载动态库函数,将该动态库载入 ...

最新文章

  1. Ubuntu下安装DEB包时出现错误的解救方法
  2. vue的插值语法及el和data、methods语法释义
  3. [周赛][Leetcode][第5457题][JAVA][动态规划][和为奇数的子数组数目]
  4. Problem E: 高于均分的学生
  5. PXF webapp is inaccessible but tomcat is up
  6. jupyter notebook代码自动完成功能
  7. .Net程序员学习Linux最简单的方法(转载)
  8. THCudaCheck FAIL file=/pytorch/aten/src/THC/THCGeneral.cpp line=405 error=11 : invalid argument
  9. 【遥感微课堂】学习ENVI5.0
  10. html分辨手机电脑,html自动识别手机或者pc端
  11. django注册登录
  12. C语言基础(七)字符串 类型重定义 结构体
  13. 【VUE】vue3.0后台常用模板
  14. 利用Nginxcp为cPanel/WHM服务器开启nginx支持
  15. 北斗卫星重要信息汇总
  16. Linux基本命令及Linux文件类型
  17. 启动tomcat报错:StandardEngine[Catalina].StandardHost[localhost].StandardContext
  18. Python数据可视化 Pyecharts 制作 Page 顺序多图
  19. Use case or User story (下)
  20. 《一分钟经理人》及《首先,打破一切常规》读书心得

热门文章

  1. Android内容提供器的应用,基于Android的智能终端应用防护系统短信过滤子模块的设计与实现...
  2. linux编译l和l区别,linux 下 g++编译程序时-I(大写i) 与-L(大写l)-l(小写l) 的作用详解...
  3. oracle union all 特别慢_值得收藏的Oracle数据库性能优化
  4. 1000道Python题库系列分享
  5. 使用决策树分类算法判断一下你的Python水平
  6. Python实现本机网络流量监视器
  7. 读 利用python进行数据分析 后感
  8. iis7.5 php7.0,Win2008R2 IIS7.5 PHP7.3 配置ImageMagick及PHP-Imagick扩展
  9. 德力西双电源自动转换开关说明书_今日优品:南开区FLQ3-25双电源自动转换开关全国服务-老友网...
  10. mac打开chm文件_Mac无法打开TXT文件怎么办?Mac无法打开txt文档的解决方法