ctypes相关内容

您如何在python中将完整结构写入共享内存?

有许多示例显示了如何将单个变量甚至结构的单个成员写入共享内存,但是有一种方法可以将整个结构放入共享内存中,以便您可以简单地操作该结构以更新共享内存? 这是到目前为止我正在做的一个示例(在我的实际程序中-结构中有50多个字段-完成时可能超过100个字段).它每0.05秒用x,y,z坐标更新共享内存.尽管它可以正常工作,但它在每个步骤都打包了一个新的结构,并将整个内容写入共享内存-对我来说这似乎 ..
发布时间:2021-04-27 20:00:58 Python

windll ctypes从python 2.7调用可变参数c函数在win64中起作用,但在win32中不起作用

我在Windows 10-32和Windows 10-64上使用Python 2.7. 我正在将Python包装器编写为C编译的stdcall(Windows)DLL(= mydll).我有2个版本的DLL-32位和64位.使用 windll.mydll 可以很好地使用64版本.对于DLL上的所有功能,除了可变参数 printf 之类的功能之外,对于相同的命令,该32版本的效果很好. ..
发布时间:2021-04-27 20:00:54 Python

C ++和Python:将2D双指针数组从python传递并返回到c ++

我想将2D数组从Python传递到C ++函数,然后将相同类型,相同尺寸的数组返回给Python.我知道这个问题已经被问过几次了,但是我找不到与我问题相关的答案.对于我的问题,我必须使用双指针数组,并使函数返回双指针数组(如许多示例所示,不是 void ). 我的C ++函数是: #include#includeextern"C" double ..
发布时间:2021-04-27 20:00:52 C/C++开发

EnumDisplayDevices给出两个显示,即使我只有一个

我当时正在使用Python编写Night Light的应用程序.我正在使用Windows API来使用Gamma Ramp来完成我的任务.我使用了来自 user32.dll 的 EnumDisplayDevicesW 来获取连接到PC的信息和显示数量. 我只有一台显示器连接到台式机,但是输出显示了两台显示器的信息. 这是我的代码.我正在使用 Python ,并通过 ctypes 模块访 ..
发布时间:2021-04-27 20:00:48 Python

如何在ctypes中使用typedef

我正在尝试使用ctypes库将C库包装在Python中. 我用这种方式包装结构 file.c typedef struct {int x;int y;} 观点; file.py 导入ctypes类Point(ctypes.Structure):_fields _ = [("x":ctypes.c_int),("y",ctypes.c_int)] 但是我有这样一条语句,无法 ..
发布时间:2021-04-27 20:00:38 Python

从库返回的ctypes结构

给出一个简单的C文件: #includetypedef结构点{int x;int y;} 观点;要点get_point(){点p = {1,2};返回p;} 我有一个简单的python文件: 从ctypes导入 *导入操作系统lib_name ='/testlib.so'test_lib = CDLL(os.getcwd()+ lib_name)类POINT(St ..
发布时间:2021-04-27 20:00:36 Python

在Python 3中更改Windows 10背景

我一直在寻找通过python脚本更改Windows 10桌面墙纸的最佳方法.当我尝试运行此脚本时,桌面背景变成纯黑色. 导入ctypes路径='C:\\ Users \\ Patrick \\ Desktop \\ 0200200220.jpg'def changeBG(路径):SPI_SETDESKWALLPAPER = 20ctypes.windll.user32.SystemParamet ..
发布时间:2021-04-27 20:00:33 Python

Python C包装器,用于读取可变的参数长度

我正在尝试替换MATLAB/MEX并切换到Python.我遇到过SWIG,CTYPE和AMP.Cython作为可能的解决方案,并开始尝试SWIG(这似乎很简单). 我的C函数具有可变的参数长度,形式为 main(int argc,char * argv []).我在网上找到了解决方案,但是与SWIG一起使用会导致很多问题. 其他方法(ctypes/Cython)更简单吗? 任何使用S ..
发布时间:2021-04-27 20:00:30 Python

使用ctypes从Python调用带有Char **参数的C方法

我需要一种方法,可以使用ctypes库将数组从Python传递给char *到C库. 我尝试过的某些方法导致我出现了细分错误,而另一些导致了垃圾信息. 解决方案 在这个问题上苦苦挣扎了一段时间之后,我决定写一个小的HowTo,以便其他人可以从中受益. 具有这段C代码: void passPointerArray(int size,char ** stringArray){f ..
发布时间:2021-04-21 20:17:17 Python

从C调用python函数作为回调.处理GIL的正确方法是什么?

我正在使用 cytpes 来包装C api.api函数之一允许您注册回调.我正在使用 CFUNCTYPE 指定函数的类型,并从我的python库的用户提供的python函数中创建 CFUNCTYPE 的实例,然后将其传递给C函数(通过 ctypes api调用). 我知道 ctypes 调用会释放 GIL .我想知道当C库函数调用我的python回调函数时会发生什么. ctypes 是否重新 ..
发布时间:2021-04-21 19:04:44 Python

Python ctypes:传递字符串数组

我在Python 2.7中有一个字符串数组,我想通过 ctypes 传递给C函数: unsigned int SetParams(unsigned int count,const char ** params) 所以我可以在python中定义参数: 将ctypes导入为ctlib = ct.cdll.LoadLibrary('...')lib.SetParams.restype = ct ..
发布时间:2021-04-16 20:12:48 Python

Python:struct和array与ctypes类似的功能

Python提供了以下三个模块来处理C类型以及如何处理它们: struct 用于C结构 array 用于诸如此类的数组在C 中 ctypes 用于C函数,其中必然需要处理C的类型系统 虽然 ctypes 似乎比 struct 和 array 更通用,更灵活(其主要任务是"Python的外部函数库"),当任务是读取二进制数据结构时,这三个模块之间在功能上似乎有很大的重叠.例如,如果我想 ..
发布时间:2021-04-15 19:34:57 Python

ctypes c ++函数返回未知大小的数组

我有一个c ++函数,该函数接受指向已知大小的数组的Pointer作为输入,并返回在该函数完成数据处理之前无法确定的大小的数组.如何调用c ++函数,传递第一个数组并将结果作为第二个数组接收? 我目前正在做类似的事情: PYTHON: def标注(largeListUlonglongs):cFunc = PyDLL("./cFunction.dll").processNumbers ..
发布时间:2021-04-09 20:49:09 C/C++开发

如何将输出参数像python中的char **数组一样对待?

我正在尝试从Python脚本调用C方法,但是在调用将char **数组作为参数输出的方法时遇到了问题。 在C层中的方法如下。 helper.c 文件: //此方法将文件名作为输入,将oNames作为输出 extern C int GetNames(char * iFilename,char ** oNames) { int oNumNames,oStatus; / * io * ..
发布时间:2020-10-12 23:42:47 C/C++开发

Ctypes结构自动完成

Python IDE(任何)Intellisense如何在设计时发现结构成员? 类MY_STRUCTURE(ctypes .structure): _fields_ = [(“ member1”,c_int), (“ member2”,c_int)] #任何想法都在此处声明诸如self.member1之类的字段内部结构? my_structure = MY_STRUCTURE ..
发布时间:2020-10-12 23:42:36 Python

在python ctypes类中逐字节访问(Structure)

这是对我的问题,该问题没有得到解决 编辑并组织 我的模块中: class t_data_block(Structure): _fields_ = [(“ current_readings”,c_ulong * PORTS_NUM), (“ power_reading”,c_ulong)] 类t_sys_flags(Structure): “系统标志” _field ..
发布时间:2020-10-12 23:42:33 Python

像在C中定义的那样在Python中定义函数

我在C中有一个函数,该函数从给定的缓冲区中逐字节读取并返回数学公式的结果。 我需要在Python中编写相同的函数 C中的缓冲区是 struct ,在python中我使用了 ctypes结构类 我在c中的原型是 int calc_formula(char * buff,int len) 所以在c中调用该函数很容易,但是我如何在Python中定义该函数呢? 我尝试定义以下 ..
发布时间:2020-10-12 23:42:31 Python

我将什么作为最后一个值传递给函数SetupAPI.DLL.SetupDiEnumDeviceInterfaces()?

我正在使用Python尝试创建一个简单的程序,该程序可以在相当简单的USB设备之间进行读写。我遇到的问题是,由于PyWinUSB和PyUSB似乎没有我需要的东西(试图写入设备会使事情爆炸),我必须使用ctypes python模块和原始dll函数从头开始工作。 WinUSB和SetupAPI。 我已经能够回答有关如何定义传递给函数的结构的问题,但是我遇到的问题是我现在所拥有的就是根据函数的规 ..
发布时间:2020-10-12 23:42:27 其他开发