详解Python 调用C# dll库最简方法

yipeiwu_com6年前Python基础

1.为什么要跨平台编程?双平台编程或多平台编程,只是为提供更好开发更兼容的解决方案的一种手段,编程时服务于产品和客户的,也是因地制宜。

先安装python所需的库clr ,我这里已经安装了,可以去对应的根目录下查看有没有pythonnet这个文件夹。

2.首先要特别注意,你安装使用的Python的版本是对应x64还是x32的,python只能调用对应64位或32位的dll,可以右击启动项目的属性,修改并重新生成。

特别注意:启动项目和你的目标库不一样,前者输出类型是windows应用或是控制台,后者输出类型是类库,这个才是生成dll的类型。

3.再次,右击启动项目的属性,选则bin\Debug下的你想要的dll。

4.python中对动态链接库的引用,并将dll文件放到.py文件的同级目录下。第三行代码是声明要调用其空间下所有的类、属性、方法等等。

import clr # add C# suppor
clr.AddReference('In3Controllers')

from In3Controllers import *

5.这个Testor就是我在C#写的代码,生成的In3Controllers.dll的动态链接库里面的一个函数。到这里已经完成了引用C# dll库的所有步骤。

if __name__ == '__main__':

  smctestor = Testor(setting, param)            # place here so it can only init once

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用Python中的reduce()函数求积的实例

使用Python中的reduce()函数求积的实例

编写一个prod()函数,可以接受一个list并利用reduce()求积。 from functools import reduce def prod(x,y): return x...

Django中日期处理注意事项与自定义时间格式转换详解

Django中日期处理注意事项与自定义时间格式转换详解

前言 我们在用Django创建models时,常常会涉及时间日期字段的处理,Django里日期相关Field有DateTimeField、DateField和TimeField三种类型,...

Python实现Dijkstra算法

Python实现Dijkstra算法

Dijkstra算法 迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪...

浅谈python新手中常见的疑惑及解答

1 lambda函数 函数格式是lambda keys:express   匿名函数lambda是一个表达式函数,接受keys参数,返回表达式的值。所以不用retur...

python字典get()方法用法分析

本文实例讲述了python字典get()方法用法。分享给大家供大家参考。具体分析如下: 如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict...