python 如何封装dll_如何为DLL库创建Python包装器
我试图从软件SDK中获取一个提供的DLL文件并创建一个python包装器,以便将其与我的代码库的其余部分集成。我在网上看了不少指南,还是没找到。在
我现在的Python代码是:from ctypes import *
from ctypes.wintypes import HWND
import os
class OptistarDLL(object):
dll_path = 'OSDS142MRT.dll'
with open(dll_path) as thefile:
pass
_dll = WinDLL(dll_path)
init_library = _dll['OSDS142M_Initialize']
init_library.restype = c_int
init_library.argtypes = (c_int, c_bool, HWND, c_bool, c_int)
class OpticstarControl(object):
def __init__(self):
err = OptistarDLL.init_library(c_int(0), c_bool(False), HWND(0), c_bool(False), c_int(0))
if err != 0:
raise Exception("Doom")
我使用的SDK文档将此作为函数的头:
^{pr2}$
PDF示例给出:OSDS142M_Initialize(1, false, 0, true, 0);
初始化目前只得到我ValueError: Procedure probably called with too many arguments (20 bytes in excess)
我读过WinDLLvsCDLL,当我改为CDLL时,加载DLL失败。我也在所有的指南中看到,它们的标题有DLLEXPORT,我的有{},我不知道这是否是一个问题。在
有人有什么想法吗?在
python 如何封装dll_如何为DLL库创建Python包装器相关推荐
- python sip模块(为C和C++库创建Python绑定)
Python的一个特性是,它具有强大的功能,它能够使用C或C++编写的现有库,并使它们成为Python扩展模块.这种扩展模块通常被称为库的绑定. SIP是一种工具,它可以很容易地为C和C++库创建Py ...
- python如何封装成可调用的库_Python实现打包成库供别的模块调用
1.创建python项目bricewulib 2.新建test_package包并创建info1类以及print_hello方法 3.为了让包的结构再复杂点,我们再在test_package下面新建一 ...
- math库是python语言的数学模块吗_math库是python语言的数学模块。
[单选题]for i in range(10): ...... 中 ,i的循环终值是 (). [简答题]人生观的主要内容 [填空题]下面程序的运行结果是( ). b, c=2, 4 def g_fun ...
- python turtle 画老鼠_通过Turtle库在Python中绘制一个鼠年福鼠
turtle库是一个很经典的绘图库,其最初来自于1967年创造的logo编程语言,之后被Python编写放到了Python的内置模块中.网络上有很多借助于turtle绘制精美图像的案例.比如小猪佩奇. ...
- python使用什么关键字来定义,使用( )关键字来创建python自定义函数。
相关题目与解析 使用下列哪种关键字来创建Python自定义函数? 使用()关键字创建自定义函数 使用()关键字创建自定义函数. Python中定义函数关键字为(). python中定义函数的关键字是( ...
- python如何封装成可调用的库_在python中如何以异步的方式调用第三方库提供的同步API...
在关于asyncio的基本用法中提到,asyncio并不是多线程.在协程中调用同步(阻塞函数),都占用同一线程的CPU时间,即当前线程会被阻塞(即协程只会在等待一个协程时可能出让CPU,如果是普通函数 ...
- python 调用opencv dll_【问题已解决】python 3.6下安装opencv-python解决cv2 DLL load failed: 找不到指定的模块问题...
1.首先下载安装对应Python版本的opencv-python:https://pypi.org/project/opencv-python/#files 我这里下载的是:opencv_python ...
- python可以封装成独立程序吗_windows环境下把Python代码打包成独立执行的exe
有时候因为出差,突然急需处理一批数据.虽然写好的脚本存储在云端随用随取,然而编译的环境还需要重新搭建,模块也需要重新装载,从头到尾这么一遍下来,也是要花费可观的时间成本的. 有没有什么办法,可以让.p ...
- Linux C++与Python混合编程(g++生成链接库与python调用)
gcc/g++ 链接库的编译与链接 这一篇对动态链接库和静态链接库以及编译结果讲得很清楚,目前看到最好的. Linux下Python与C++混合编程
最新文章
- [数据结构] 时间复杂度计算
- git 使用详解(5)—— get log 查看提交历史
- python爬虫能干什么-Python爬虫可以做什么?
- Rest Framework:序列化组件
- 在Google Cloud Platform的K8上运行Fn函数
- C++ 构造函数分类以及调用
- 设计模式---3(工厂方法模式的概念,工厂方法模式的实现,工厂方法模式和简单工厂模式比较)
- transform的q、k、v的计算过程
- jdbc连接本机oracle卡死,Oracle JDBC 连接卡死后 Connection Reset解决过程
- 1799元!OPPO A9悄然上架:4月30日正式开售
- 刀片存储助力发挥融合基础架构优势
- 从0到1手写分布式对象存储系统-05纠删码与数据修复
- Java开发工程师的工作内容包含哪些?
- ArcGIS Server 10.8.1安装
- 【数据库】数据库入门(五): 实体关系模型 (Entity-Relationship Model)
- 惠普暗影精灵4pro安装ubuntu16.04
- proftpd java_基于 proftpd 配置加密 FTP
- 图像预处理库CV-CUDA开源了,打破预处理瓶颈,提升推理吞吐量20多倍
- Java实现 LeetCode 564 寻找最近的回文数(今天要GG在这道题了 头晕+题难(((φ(◎ロ◎;)φ))))...
- 产品经理基础——需求文档