python加载dll_C#初识 *.dll文件及动手编写简单应用

2023-10-27

DLL的概念

        DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。

    个人理解觉得dll文件类似与python中的第三方库。里面封装了很多函数。

本文主要内容

环境:VS2017  Win7 x64

  • 创建mathWork.dll文件

  • 运用mathWork.dll文件

Step-1创建mathWork.dll文件

8dff83a9b847a0fdc6033c3c59ca6404.png

4b5f7acf6d51ac396ada9057abb30593.png

修改Class1.cs名称为math.cs,并创建函数

6745c1068e6e1f5aac43627a5a841b9a.png

生成mathWork.dll文件

9f33c00fcf07de68e6611cf8353c0725.png

在文件夹中找到mathWork.dll文件

f9289130081e9db667356195081c0ed6.png

Step-2运用mathWork.dll文件

新建项目

46cb970f06a45d9bb325509a824e40ec.png

新建窗体及组件

a45b68957af1c727095131bef9c4b6ba.png

添加引用刚才的mathWork.dll文件

d656c8ef7cce459268610a4b09ec6fec.png

编写代码

7789b8b8185d5edd7a16d94b2b16921a.png

运行程序

a307afebe3103442fae9f2b3208d6b21.png

其他说明:

    DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。

        通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。

        此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。

fd25c15225363d2b129ed6ca0ae5b89e.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python加载dll_C#初识 *.dll文件及动手编写简单应用 的相关文章

  • vue使用高德地图报错:AMap.DistrictSearch is not a constructor问题解决

    这个问题说的 是没有初始化 解决如下 参考 https blog csdn net shidaping article details 78537730
  • 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.

    问题 from flask restful reqparse 自定义的help内容无法显示 代码如下 from flask restful import reqparse class EquipmentStaticView views Me
  • Unity Android手机触屏事件

    一 下面先说经常用的三个事件 手指按下 手指移动 手指松开 1 手指按下 if input touchCount 1 if input touches 0 phase TouchPhase Beagn 手指按下时 要触发的代码 2 手指在屏
  • 监控系统 服务器配置,监控系统服务器配置

    监控系统服务器配置 内容精选 换一换 简要介绍Mesos是一个集群管理器 提供了有效的 跨分布式应用或框架的资源隔离和共享 可以管理Hadoop MPI Hypertable Spark等集群 语言 C C 一句话描述 集群管理器开源协议
  • docker 报错 Container is not running

    我在运行docker exec it 56b90db5253e bin bash报错 出现这个问题 是因为Container容器之前已经启动过了 需要执行docker start 56b90db5253e就可以解决了
  • 转:前端 100 问:能搞懂80%的请把简历给我

    前端 100 问 能搞懂80 的请把简历给我 引言 半年时间 几千人参与 精选大厂前端面试高频 100 题 这就是 壹题 在 2019 年 1 月 21 日这天 壹题 项目正式开始 在这之后每个工作日都会出一道高频面试题 主要涵盖阿里 腾讯
  • 【工具】谷歌浏览器禁用JS

    操作 F12 进入调试窗口 ctrl shift p 调出命令行工具 输入 disable javascript 选中后回车执行 反之 enable javascript 启用JS 或者直接关闭调试窗口 好处 绕开JS校验 可以直接复制代码
  • java导入csv格式文件之身份证格式处理

    一 出现的问题 csv中的身份证号如下图 导到数据库中的结果 因此怎样导入才能使身份证能够正常导入呢 2 解决方案 第一步 选中身份证那一列 第二步 右键选择 设置单元格格式 第三步 数字列中 选择 特殊 gt 邮政编码 点击确定
  • MySql基础教程(二):数据类型

    MySql基础教程 二 数据类型 MySQL 中定义数据字段的类型对你数据库的优化是非常重要的 MySQL 支持多种类型 大致可以分为三类 数值 日期 时间和字符串 字符 类型 数值类型 MySQL 支持所有标准 SQL 数值数据类型 这些
  • 【C++11】随机数引擎与随机数类

    文章目录 随机数引擎与伪随机数 获取 真随机数 静态随机数引擎 随机数种子 std random device 服从均匀分布的整型随机数 服从均匀分布的实型随机数 服从标准正态分布的随机数 服从二项分布的随机结果 随机数引擎与伪随机数 C
  • 【CSDN竞赛】第八期解题报告

    文章目录 感想 关于自己 关于平台 第一题 难度 入门但是不完全入门 题目描述 90分做法 100分做法 第二题 难度 中等 题目描述 100分做法 第三题 难度 简单 中等 题目描述 100分做法 第四题 难度 中等 题目描述 100分做
  • 使用Qt开发俄罗斯方块游戏(1)

    使用Qt开发俄罗斯方块游戏 可能大家都比较感兴趣吧 那么就快看下面的详细讲解吧 其实在Qt Creator中已经有了俄罗斯方块的例子 大家可以在帮助中搜索Tetrix进行查看 其内容如下 但是对于初学者 这个例子并不是那么容易就能看懂 所以
  • 【图卷积神经网络】1-入门篇:为什么使用图神经网络(下)

    为什么使用图神经网络 在本书中 我们将重点介绍图学习技术中的深度学习家族 通常称为图神经网络 GNNs是一种新的深度学习架构类别 专门设计用于处理图结构化数据 与主要用于文本和图像的传统深度学习算法不同 GNNs明确地用于处理和分析图数据集
  • CSS中line-height属性

    line height CSS 属性用于设置多行元素的空间量 如多行文本的间距 对于块级元素 它指定元素行盒 line boxes 的最小高度 对于非替代的 inline 元素 它用于计算行盒 line box 的高度 CSS Demo l
  • Latex中插入多张图片,实现并排排列或者多行多列排列

    最近需要用latex插入多张图片 达到这么一个效果 但是我原来只插入过一张图片 图片内容来源于网络 是国漫一人之下的宝儿姐 强推这部国漫 代码如下 效果如图 begin figure centering includegraphics he
  • yolov3训练讯飞安检图像数据集记录

    yolov3训练讯飞安检图像数据集记录 前言 前置工作 数据集 yolov3配置 下载yolov3项目代码 修改Makefile文件并编译 实验 准备数据集 下载Imagenet上预先训练的权重 修改darknet cfg voc data
  • 用std::string::compare()用法

    c 系列文章目录 c 处理文本相对于python等脚本语言还是挺麻烦的 往往需要和fstream fstream string 一起配合使用才能完全把文本解析出来 其实 string并不是一个单独的容器 只是basic string 模板类
  • Unity3D高级动画(Animator)-动画状态机

    动态系统种类 Animation动画状态机 是旧版的动画状态机 Animator动画状态机 是新版的动画状态机 其实就是由Animation组成的 这里我们常用这个 Animator的使用 1 从网上找的3D模型FBX文件 包括了模型的动画
  • random_queue:支持push, popRamdom的数据结构

    pop哪一个元素 决定了queue stack priority queue的不同 新加一个random queue 等概率的从集合里取出一个元素pop 1 先用rand int l int r 得到一个随机位置 2 和top交换 3 to

随机推荐

  • Sonar部分问题解决归纳

    1 Refactor this method to not always return the same value 方法的返回值应根据不同情况而发生改变 不能返回固定值 实际判断是应结合返回值赋值情况等决定是否更改 2 String li
  • ARMV8体系结构简介:AArch64系统级体系结构之编程模型(4)- 其它

    1 前言 2 可配置的指令使能 禁用控制和trap控制 指令使能 禁用 当指令被禁用 则这条指令就会变成未定义 指令Trap控制 控制某条或某些指令在运行时进入陷阱 进入陷阱的指令会产生trap异常 路由规则如下 1 当前为EL1 则陷阱异
  • 【JDBC】JDBC之ResultSet 结果集

    ResultSet 结果集 一 ResultSet 结果集 1 1 接收结果集 1 2 遍历ResultSet中的数据 1 2 1 遍历方法 1 3 综合案例 1 3 1 根据列的名称获取 1 3 2 根据列的下标获取 二 常见错误 一 R
  • Android Studio 安装虚拟机报错 Intel® HAXM installation failed.

    Android Studio 安装虚拟机时报错 Intel HAXM installation failed To install Intel HAXM follow the instructions found at https gith
  • React - 甘特图时间轴

    组件调用
  • MySQL数据库基础

    目录 数据库介绍 什么是数据库 数据库的分类 1 数据库的操作 创建数据库 显示数据库 使用数据库 删除数据库 2 表的操作 创建表 删除表 3 常用数据类型 插入数据 查询数据 从本篇起就又要开始新的篇章了 数据结构初级阶段的就告一段落了
  • 未能加载文件或程序集 或它的某一个依赖项。试图加载格式不正确的程序。问题解决

    我使用x64程序 运行时总报错 解决方案 仔细检查项目引用的dll 有win32的直接移除 换x64的 介绍如何使用工具查看dll是否是x86或者x64的 如何查看dll以及lib文件是32位还是64位 参考 https blog csdn
  • RestSharp访问带有账号密码的接口地址实现方法

    可以将账号密码封装成一个HttpBasicAuthenticator 然后将其当作参数放置到RestSharpClient中 即可成功解决 其在postman中的表现是
  • Linux 压缩解压命令

    linux解压 tar命令 tar命令 tar cxtzjvfpPN 文件与目录 参数 c 建立一个压缩文件的参数指令 create 的意思 x 解开一个压缩文件的参数指令 t 查看 tarfile 里面的文件 特别注意 在参数的下达中 c
  • sql常用查询语句

    单表查询 查询pname和price 去掉pname和price同时重复的数据 select distinct pname price from product 查询商品名和价格并起别名 select pname as 商品名称 price
  • python三种等待元素方法

    在做web或app的自动化测试经过会出现找不到元素而报错的情况 很多时候是因为元素 还没有被加载出来 查找的代码就已经被执行了 自然就找不到元素了 那么我可以用等待 元素加载完成后再执行查找元素的code Python里有三种等待的方式 一
  • unity,  在编辑界面中隐藏公开变量

    unity默认声明为public的变量都是在编辑界面可见的 如果要隐藏的话就可以这样做 一种是使用属性 Public float Age get set 另一种是使用标签 HideInInspector public float dista
  • 适配iPhoneX详解之iOS项目添加启动图片LaunchImage的3种方式

    启动图片 测试环境 Xcdoe 9 iOS11 这篇文章 主要是解决公司发布多个马甲app 启动图片和图片放到了项目普通文件夹下的情况 文章可以参考我之前写的 如果公司只是固定的产品 那直接放到Images xcassets 下或者使用La
  • TDR土壤水分检测传感器方案设计

    1 TDR土壤水分检测传感器方案 TDR 时域反射 法是介电测量中的高速测量技术 以 Feidegg 1969 等人对许多液体介电特性的研究为基础而发展起来的 最初被用来定位通讯电缆的缺陷 TDR 是一个类似于雷达系统的系统 有较强的独立性
  • chatgpt赋能python:如何把Python添加到Path

    如何把Python添加到Path Python是一种流行的编程语言 但是如果您想在命令行或终端中使用它 您需要将它添加到您的环境变量中 这篇文章将向您展示如何将Python添加到PATH中 以便您可以在任何地方使用Python 什么是PAT
  • 青少年编程python一级真题_青少年编程能力等级测评试卷二及答案 Python编程(一级)...

    青少年编程能力等级测评试卷 Python编程 一级 考试时间90分钟 满分100分 一 单项选择题 共20题 每题2 5分 共50分 1 运行下方代码段 输出是6 则输入的可能是 C a eval input print a A 8 2B
  • 《数据库系统概念》11-扩展的E-R特性

    虽然基本的E R特性可以应对大部分数据库建模 但为了使用方便 也提供扩展的E R特性一 特化Specialization有时一个实体集会保护若干子集 这些子集各自具有不同的属性 比如person可以包含employee和student子集
  • vsCode 配置 html 文件警告

    vsCode 配置 html 文件警告 问题描述 IDE vsCode 会默认根据自己的规则来检测 html 文件书写格式 但是在实际项目中模板的格式可能会有与规则有些不同 比如 第一行必须为声明 属性不能为空等 本人有点偏强迫症 要找办法
  • 创新造型,引领未来——探索OLED透明屏造型的创新与应用

    OLED透明屏作为一项颠覆性的显示技术 正在以其卓越的透明度和灵活性在各个行业中崭露头角 而在OLED透明屏的应用中 造型设计的创新成为了吸引消费者和提升用户体验的重要因素 一 OLED透明屏的特点 OLED透明屏采用有机发光二极管技术 其
  • python加载dll_C#初识 *.dll文件及动手编写简单应用

    DLL的概念 DLL Dynamic Link Library 文件为动态链接库文件 又称 应用程序拓展 是软件文件类型 在Windows中 许多应用程序并不是一个完整的可执行文件 它们被分割成一些相对独立的动态链接库 即DLL文件 放置于