ctypes相关内容

Python Ctypes奇怪的行为

我正在尝试为名为Virtual Paradise的应用程序设计一个机器人,并且将用于构建该机器人的SDK编译为共享库,因此我必须使用ctypes。 当我使用 导入线程 ... 从ctypes导入CDLL时, CFUNCTYPE,c_char_p,c_int,c_void_p vp = CDLL(“ libvpsdk.so”) vp.vp_string.restype = c_ ..
发布时间:2020-10-12 23:37:01 Python

python ctypes是否支持size-0数组?

我里面有一个带有array [0]的结构。我想知道如何用ctypes表示它?还是ctypes不支持它,还有其他解决方案吗?任何帮助将不胜感激。 解决方案 您可以表示这样的结构: struct测试 { int大小; char arr [0]; }; 作为: class Test(ctypes.Structure): _fields_ = [(' ..
发布时间:2020-10-12 23:36:57 其他开发

卸载共享库中的ctypes中的共享库

我正在从我的python脚本中调用一个so文件。据我了解,我真的不需要释放使用ctypes在python中打开的共享库。但是,在我的so文件代码中,它dlopen另一个so文件,但不执行dlclose()。 在这种情况下,从python端使用安全吗?我不必释放在ctypes内部打开的共享库加载文件吗? 解决方案 规则 始终保持清洁 (尽管现代技术会为您提供清洁方面的服务)。 [Py ..
发布时间:2020-10-12 23:35:54 Python

如何在python3中使用ctypes void **指针

我想通过它的DLL连接一个光谱仪,其中一个功能定义为 UINT UAI_SpectrometerOpen(unsigned int dev, void **句柄,无符号int VID,无符号int PID) 来自文档,dev为指定索引光谱仪 的句柄是返回光谱仪句柄的指针 的VID是提供指定的VID PID是提供指定的PID dev,VID,PID是已知的,但是我不知 ..
发布时间:2020-10-12 23:35:51 Python

使用ctypes编写回调,该回调将指向指针参数的指针传入,以用作输出参数

我正在使用ctypes将python代码与旧版C DLL接口。 DLL期望我给它一个函数指针用作回调,然后将在DLL内部调用它。 C的C声明该回调看起来像 char foo(char ** buf) 从理论上讲,DLL希望我让buf指向由回调管理的字符串缓冲区,如果一切正常,则返回0。在C中,这将是一个静态char []变量mybuf,我将使用 这样的代码将 ..
发布时间:2020-10-12 23:34:47 Python

Ctypes:将返回的指针映射到结构

我尝试阅读有关此主题的所有问题/答案,但无法进行任何工作。我要做的就是将结构发送到共享库,然后将其返回并可以访问。 我设法创建了一个结构,好了,我可以很好地将其传递给共享库。我知道这一点,因为如果从结构中返回特定值,它将很好地工作。 Python中的结构定义如下所示: class ROW(ctypes.Structure): _fields_ = [( “地址”,ctypes.c_ ..
发布时间:2020-10-12 23:34:44 Python

如何为MS Windows PACKAGE_ID和PACKAGE_INFO结构创建Python ctypes结构?

我正在尝试将此SO答案代码翻译为Python(以及那里的其他答案)官方文档的帮助 PACKAGE_ID 和 PACKAGE_INFO 。 我通过 GetPackageFullName 得到完整的软件包名称,但是我的某些结构却不如 OpenPackageInfoByFullName 给出了对我来说毫无用处的Unicode字符。同样, PackageIdFromFullName 在调用时也会返回 ..
发布时间:2020-10-12 23:33:35 Python

使用Python Ctypes违反访问

我正在尝试使用Pythons ctypes模块从DLL导入和使用函数,但是我一直收到此错误: Windows错误:例外:访问冲突写入0x0000002C 我在这里已经看过与类似主题有关的其他问题,但是似乎没有人能够提供有效的答案。 我当前的代码如下: from ctypes import * dll =“ ./WinlicenseSDK/Winl ..
发布时间:2020-10-12 23:33:32 Python

ctypes在/ sw / lib中找不到fink安装的库

ctypes 找不到通过fink安装的库,这些库位于 / sw / lib / 下,除非我没有明确地提供了到库的完整路径 >> import ctypes >> ctypes.CDLL(’libgoffice-0.8.dylib’) 回溯(最近一次调用为最后一次): 文件“”,中的第1行。 文件“ /sw/lib/python2.7/ctypes/__i ..
发布时间:2020-10-12 23:33:28 Python

使用ctypes libc.strlen时总是返回1吗?

我有一个使用ctypes的简单代码: Python 3.1.1(r311:74480,Feb 23 2010,11: 06:41)linux2上的 [GCC 4.1.2 20071124(Red Hat 4.1.2-42)] 键入“帮助”,“版权”,“信用”或“许可证”以获取更多信息。 >> import ctypes >> libc = ctypes.CDLL(“ libc.so ..
发布时间:2020-10-12 23:33:25 Python

将函数指针从C Dll传递到C Dll

我正在尝试使用Windows函数: https://docs.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-setwindowshookexa 注册全局钩子。 我已经在C ++ Dll中创建了一个钩子过程,并用C ++编写的可执行文件测试了该过程,该可执行文件调用SetWindowsHookEx,它似乎可以正常工作。 ..
发布时间:2020-10-12 23:32:03 Python

Python ctypes DLL标准输出

我正在使用ctypes从python调用DLL函数,我只是想从dll调用中捕获标准输出。我想在不更改dll代码本身的情况下进行很多printf的重定向。 我该怎么做? 解决方案 看起来您需要制作一个包装器。尝试如下操作: char * CallSomeFunc() { ostrstream ostr; cout.rdbuf(ostr.rdbuf()); SomeF ..
发布时间:2020-10-12 23:31:58 Python

Python ctypes使用winmode加载DLL

我已经安装了一个C ++ API应用程序,该应用程序放置了两个DLL( A.DLL 和 B.DLL )在我的程序文件夹中。 A.DLL 依赖于 B.DLL 我可以加载从 C:CPrograms Files\XXX-API\A.DLL ctypes.WinDLL IF成功地将它们c $ c> 而如果我将文件夹移动到另一个位置 C:\TEMP\ ,Python cytes加载将抱怨它找不到 ..
发布时间:2020-10-12 23:31:56 Python

用Python解析C结构

我确定这是完全错误的,并且遇到了一些问题。我已经将一个 WIN32_FIND_DATAW 结构数组一个接一个地写到磁盘上,我想在Python脚本中使用并解析它们。 我当前使用的代码是: >> fp = open('findData','r')。read() >>>数据= ctypes.cast(fp,ctypes.POINTER(wintypes.WIN32_FIND_DATAW)) ..
发布时间:2020-10-12 23:31:48 Python

使用python ctypes检测Shift键

我想检测在执行python脚本期间是否按住CTRL | SHIFT | ALT来更改其行为。所以对于ex,如果我在按住SHIFT的情况下运行脚本,我希望GUI弹出而不是命令行...等等... 因为msvcrt.kbhit无法检测到SHIFT按键,我做了一些挖掘,发现此解决方案,这似乎很有希望。我将SHIFT添加到其热键列表中作为测试。不幸的是,如果您在dos外壳中尝试下面的代码,您会看到它可 ..
发布时间:2020-10-12 23:31:41 Python

python cdll找不到模块

我有一个由两个dll文件和一个python包装器组成的库。 我目前有基于这三个文件的代码,它们与我的主文件位于同一父目录中python文件。我现在正在尝试重构内容,然后继续开发,并希望将所述库代码移至其自己的lib /目录中。不幸的是,我尝试过的所有方法都无济于事。 import ctypes _lib = ctypes.cdll [“ ./my.dll“] ..
发布时间:2020-10-12 23:31:36 Python

从C ++通过变量缓冲通过回调调用python

我设法编写了代码,以便可以通过回调从C ++调用python。 Python中的回调设置如下: proto = ctypes.CFUNCTYPE(ctypes.c_char_p,ctypes.POINTER(ctypes.c_char)) def解析器(查询,结果): #解析代码 fp = proto(parser_func) 这可以,但是我从C ..
发布时间:2020-10-12 23:31:26 Python

Python ctypes无法在结构中传递内存数组

Python 2.7.8,Windows 7,Phyton USB程序员的DLL 我被困在应该是大内存阵列的Data元素上,我尝试使用多个不同的定义,但我无法理解错误试图告诉我什么。我遇到的大多数错误都是类型错误,下面的代码是我最近的错误,似乎正在调用该函数,但是由于该错误而无法处理。 C API: typedef struct tagACI_Memory_Params { ..
发布时间:2020-10-12 23:31:23 Python