相思资源网 Design By www.200059.com
pythonnet简介
- pythonnet是cpython的扩展
- pythonnet提供了cpython和.net程序集之间交互的桥梁
- pythonnet开源在github上
pythonnet安装
通过pip install pythonnet安装
pythonnet的使用帮助
pythonnet的使用帮助,请参见github.
pythonnet中的坑
cpython是分32和64位的,对应的pythonnet也是分的,版本要对应好
pythonnet最核心的就是python.Runtime.dll动态库,这个库是c#编写的实现了两种语言的交互
ref类型的参数如何返回
- 返回值的第一个元素是c#的返回值
- 返回值的第二个元素就是ref的值了,ref String[] 对应的返回值第二个元素就是元组tuple
如何加载动态库
# clr是公共运行时环境,该模块是与c#交互的核心 import clr import sys # 导入clr时这个模块最好也一起导入,这样可用使用AddReference()方法 import System # input() from System import Array from System import String # 打印当前.net运行时的版本 print(System.Environment.Version) # 打印当前的环境变量 print('---------------------') for p in sys.path: print(p) print('---------------------') # 加载动态,不要带动态库的后缀名,如果d=None,表示动态库没有找到 d = clr.FindAssembly('YctxKj.Card.Interpreter') print(d) # from后面跟的是动态库的名字,不是命名空间 from YctxKj.Card.Interpreter import * d = clr.FindAssembly('YctxKj.Card.CardReader') print(d) from YctxKj.Card import CardReader # 打印程序集,如果动态库加载成功,程序集里就会含有动态库的程序集 lt = clr.ListAssemblies(False) for i in range(lt.Length): print('%d = %s' % (i,lt[i])) ret = 0 # 程序调用业务代码 _reader = CardReader() _Interpreter = ScriptInterpreter() _Interpreter._reader = _reader _Interpreter.Init(); ret = _Interpreter.SetKeyMode(305) print('ret=%d' % ret) arCarder = '' # input() 可以程序暂停,然后使用vs附加进程python.exe调试 # input() ret = _reader.ListReader(arCarder); print('ret = %d' % ret[0]) print('ref param string[] length = %d' % ret[1].Length) if ret[1].Length > 0: items = ret[1] for t in items: print(t) else: print('don\'t find cardreader dev') exit() # 链接读卡器 strReader = items[1] strATR = '' nRet = _reader.Connect(strReader, strATR) if nRet[0] != 0: print('connect card fail, nRet=%d' % nRet[0]) _reader.Beep() _reader.Beep() exit() print('crd connect successed,atr=%s' % nRet[1]) _reader.Beep() # 断开读卡器 _reader.Disconnect()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无Python调用.net动态库实现过程解析的评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。