当前位置: 首页 > news >正文

哈尔滨专业做网站推广淄博网站建设优化

哈尔滨专业做网站推广,淄博网站建设优化,网站开发的试题,做pc端网站如何python导入C#动态库问题 背景介绍 我使用的python是3.7#xff0c;需要调用之前已经用于其他项目的C#编写的动态库(xx.dll).由于调用方法很简单#xff0c;可以参考下这个调用动态库,这里主要说一下我遇到的问题。 试图加载格式不正确的程序 这个问题实际是由于目标程序和…python导入C#动态库问题 背景介绍 我使用的python是3.7需要调用之前已经用于其他项目的C#编写的动态库(xx.dll).由于调用方法很简单可以参考下这个调用动态库,这里主要说一下我遇到的问题。 试图加载格式不正确的程序 这个问题实际是由于目标程序和调用的dll不处于相同的编码上我的目标python使用的是64位编译而调用的程序采用的是32位编译这就导致调用出错。可以参考这个详解Python 调用C# dll库最简方法中的2来改变动态库的编码。 引入clr却无法使用FindAssembly等函数 有一个clr包但是python调用clr包却是从pythonnet里面的模块所以下载时候一定要下载对了。但是我自动安装的时候发现clr成功import了但是里面不包含常用的findAssembly等函数。之后发现大多的说明的是2.5左右的版本而我的安装包是3.1的于是没办法只能退回去按装了指定的版本2.5.1的了。问题给解决了。 动态加载dll库 我的项目要求尽可能兼容其他不同语言编写的dll所以我这里就使用了反射来加载C#动态库。首先python程序指定位置我用的是xml文件配置上需要加载的dll路径然后python程序启动的时候就根据配置文件指定的路径一个个加载dll。这就导致python在import的时候不知道import哪个模块(只知道模块的名字)于是我就各种找如何动态引入。最后发现使用exec执行命令的方式完美解决。具体方式如下 sys.path.append(os.getcwd() \\static\\dll)if .dll in dllPath:backRec dllPath.index(.dll)tempModuleName dllPath[0:backRec]clr.FindAssembly(static/dll/ tempModuleName)else:clr.FindAssembly(static/dll/ dllPath)clr.AddReference(tempModuleName)execcmd from %s import %s,%s % (nameSpace, classname, InitClassName)exec(execcmd)反射模块(inspect)使用问题 导入模块之后需要根据配置文件中具体的方法名称类名称来获取对应的方法和类。所以使用inspect这个模块inspect可以通过getmembers来获取具体的属性。然后根据名字找到对应的方法和类。具体代码可以参考如下 for key, obj in inspect.getmembers(sys.modules[nameSpace]):if key classname:curParseClass objbreakcurParseClass就是名字位classname的类然后就可以用其进行初始化对象并调用类成员函数或者直接调用静态函数或者对象。但是这里我碰到一个问题就是inspect.getmembers获取对象属性时有时会失败失败的原因是调用的C#动态库定义的类中有个属性由枚举转化得到的字符串即私有属性_deviceType为string公有属性DeviceType为枚举对象get返回时使用名称获取对应的枚举返回。但是_deviceType的默认值为空而其枚举里并没有这个属性就会导致inspect.getmembers将DeviceType转化为string时出现了无法转化的情况。
http://www.hkea.cn/news/14274248/

相关文章:

  • 中国网站建设网视频会议
  • 网站 公众号 建设方案咸阳网站建设培训学校
  • 网站建设 问卷调查怎么设计页面
  • 奉贤集团网站建设天眼在线查企业查询
  • 如东网站制作手机怎么制作公众号
  • 教育网站建设规划书社交网站
  • 小众写作网站天津网站页面设计
  • 广州网站建设优化公司哪家好建筑行业征信查询平台
  • php网站开发api做网站数据分析架构
  • 山西网站制作公司哪家好个人网站要不要备案
  • 科技网站建设分析seo技术教学视频
  • 门户网站制作需要多少钱公司没有销售网站怎么做业务
  • 嘉禾手机网站建设宣传片制作合同模板
  • 中国做木线条的网站网站备案代码
  • 为什么要建设档案网站如何将图片生成链接
  • 苏州网站制作好的公司wordpress关闭多站点
  • 养殖网站源码蔬菜网站建设
  • php网站开发外文安装wordpress空白
  • 中国网站开发用盗版犯法网站外链建设的八大基本准则
  • 查询域名是否做过网站西安做网站建设的公司
  • 网站收录了怎么做排名中国八冶建设集团网站
  • 外贸人常用的网站包头网站建设公司
  • 来广营做网站公司商丘网格通
  • 做网站那个搜索引擎好自己做网站和推广
  • 苏州住房建设建局官方网站青海城乡住房和建设厅网站
  • 陶瓷企业 瓷砖地板公司网站建设淘宝联盟怎么自己做网站
  • 门户网站建设公开情况自查做网站提成
  • 重庆市渝兴建设投资有限公司网站北京王府井图片
  • 怎样做淘宝优惠券网站wordpress趣味插件
  • 网站设计为什么要域名河北石家庄旅游网页设计