| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> python 通过clr库调用C#写的dll文件(详细) -> 正文阅读 |
|
[开发工具]python 通过clr库调用C#写的dll文件(详细) |
前提摘要:所谓dll文件也叫库文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。比如,再我们安装一些软件的时候,目录下面会有很多dll文件。当我们执行这个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。关于dll文件解释大家可自行百度。 今天要做的主要是使用python如何调用C#写的dll文件,并使用文件中的方法。但是想要使用dll文件中的方法需要知道dll中有哪些方法可用,那么就得有源码,或者有接口文档也可以。 项目介绍:首先,先看下我们dll文件的C#代码结构:
?? 然后,看看再python中是如何调用的, 大概流程如下: step 1: 先将dll文件放到你python文件的同目录下,或者就是引入dll文件的位置,比如:
step 2: 依次导入clr 库,加载dll文件:
step 3:从?C# 的命名空间中导入所有的类和方法:
step 4:??正式开始使用dll 中的方法了,这里要重点说一下,在使用C# 中的方法之前呢也需要先实例化一下类,然后方可使用类中的所有方法:
step 5:如上在步骤4中已经将C# 中的HwTestClient类实例化,接下来就可随意使用类中的函数了,这里举一个调用类中DownloadFile的函数的例子,调用的话也很见到,C#中需要几个参数就传几个参数即可,调用其他函数也使用同样方法:
?step 6: 接下来就是按部就班了,想实现什么功能调用什么函数即可,最好能看懂一点C#代码则会提高效率,其他的就不赘述了。 遇到的坑:有一个函数调用C# 函数的时候需要调用一个C#的枚举类,但是C#的枚举类和python枚举类有些不同,传入python枚举类的name是不行的,C#理解不了。如何解决的呢,可以根据C#的枚举类再重新定义一个python的枚举类,value用int形表示,传参的时直接传python枚举类的value即可。 这是C#的枚举类:
这是python重写的枚举类:
比如,调用C#函数时入参需要传?FW_DEVICETYPE_Q200, 直接传 肯定报错,这里可以传?EFirmwareDeviceType.FW_DEVICETYPE_Q200.value 即可完美解决! 写在最后:??总体来说,只要方法找对了,python 调用C# 的dll库不难;当然,其中也会遇到坑,换个思路问题就好解决了。最后,如果文章能帮助到你,麻烦点个赞哈! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:20:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |