ctypes相关内容

如何使用ctypes读取打包结构

python中是否有一种方法可以解压缩使用 #pragma pack(x)或 __ attribute __((packed))使用结构? 或者,如何确定python结构处理填充的方式? 解决方案 使用 struct 类。 在字节顺序(大字节序与小字节序)和对齐方式(打包)方面非常灵活。请参见 字节顺序,大小和对齐方式 。默认为本机字节顺序(相当有意义,但编译了python)。 ..
发布时间:2020-10-12 23:30:55 Python

使用ctypes为C函数传递和获取数组的问题

我正在尝试使用ctypes从我的python代码中将二维数组和一维数组传递给C函数,然后此函数将一维数组返回到python终端。 1-我需要从python传递数组,正如您将在下面看到的(我尝试如何做)。 2-可能我没有正确设置参数类型和返回类型。我一直在搜索很多东西,但没有什么能解决我的问题。 我的C代码名为Thomas_PYTHON_DLL.c: #include“ std ..
发布时间:2020-10-12 23:30:47 Python

填充python ctypes指针

我有一个C函数 uint8_t * begin(); 返回指向已分配内存的指针。 这是绑定到它的 ctypes : begin = mylibrary.begin begin.argtypes =() begin.restype = ctypes.POINTER(ctypes.c_uint8) 我需要用整数数组填充内存。 buffer = begin ..
发布时间:2020-10-12 23:29:43 Python

将utf-16字符串传递给Windows函数

我有一个名为some.dll的Windows dll,具有以下功能: void some_func(TCHAR * input_string) { ... } some_func期望指向utf的指针-16编码的字符串。 运行以下python代码: from ctypes import * some_string =“迪斯科鸭” pa ..
发布时间:2020-10-12 23:28:33 其他开发

Python Ctypes空终止字符串块

我正在使用 CreateProcessWithLogonW 的ctypes实现,并且一切正常好吧,除了我无法弄清楚如何处理此部分: 指向新进程的环境块的指针。如果此参数为NULL,则新进程将使用调用进程的环境。 一个环境块由一个以空终止的,以空终止的字符串组成的块组成。每个字符串的格式如下: name = value\0 要生成原始字符串,请执行以下操作: lpEn ..
发布时间:2020-10-12 23:28:27 Python

如何从在C层进行内存分配的python脚本中将float *数组传递给C方法

我试图从Python脚本调用C方法,C方法调用又将C ++方法调用。我正在使用malloc()在getResults()方法内部分配数组。现在的问题是如何在python脚本中将参数传递给float * oresults,该脚本的内存分配发生在C层内。 这是io.c int getResults(char * iFilename,char * iStagename,int iStateid ..
发布时间:2020-10-12 23:28:25 C/C++开发

在Ctypes中传递结构

我一直试图在Ctypes中传递一个结构。但是函数调用引发格式错误。 这是我的C函数: typedef struct Point2Struct { double x,y; } Point2; Point2测试(Point2 k) { return k; } python调用如下: 类Point2(Structure): _fields_ ..
发布时间:2020-10-12 23:27:16 Python

将Linux的.so文件转换为Windows的.dll文件

我有一些C代码(具有各种头文件和一个make文件)在Linux(Ubuntu)和中编译为 .so 文件。 python 程序,该程序使用 Ctypes 调用此共享库的功能。现在,我想在Windows上使用此程序。在Windows中, Ctypes 需要一个 .dll 文件而不是 .so 在Linux中。 因此,有没有一种方法可以转换Linux的 .so 文件放入 .dll 文件以与Windo ..
发布时间:2020-10-12 23:26:10 其他开发

ctype为什么指定argtypes

我想用python调用c ++库。 我的C ++库代码: #include extern“ C” { int test_i(int i) { return i + 1; } } 我的python代码: 从ctypes导入* libc = cdll.LoadLibrary(“ cpp / libtest.so” ..
发布时间:2020-10-12 23:23:59 C/C++开发

结合ctype和swig

我使用SWIG已有很长时间了-通常我喜欢它。 但是使用ctypes进行回调函数似乎要容易得多。 我如何结合与C dll交互的两种“方式”? 第一步是要知道,在通过相应的SWIG模块导入已加载dll之后,如何将ctypes对象获取到dll。 谢谢, Sebastian。 解决方案 缓冲协议可能是您最好的选择( http://docs.python.org/c-api ..
发布时间:2020-10-12 23:23:56 Python

带有DLL的Python ctypes参数-指向双精度数组的指针

我是一名使用Python使用ctypes的新手程序员,并尝试使用用C编写的DLL中的函数。我在SO上发现了很多类似的问题,但没有任何答案可以解决此类难题。 我已经很好地加载了DLL,但是我需要调用的函数之一要求一个指向6个双精度数组的指针以将值转储到其中,但我无法弄清楚通过Python提供所需的功能。 (我在C语言中尝试执行此操作的失败尝试是另一回事。) 我尝试了使用creftypes ..
发布时间:2020-10-12 23:23:49 Python

Python ctypes,将c_void_p作为out参数传递给c函数

我正在编写一个包装一些C ++代码的Python模块。我曾经使用此函数将指针从C ++传递到Python(该指针将由其他函数释放 DLLEXPORT void * run(double input1,double input2) 我添加了错误返回代码,所以我的新函数看起来像 DLLEXPORT int run(double input1,double input2 ..
发布时间:2020-10-12 23:23:40 C/C++开发

子类化ctypes-Python

这是我在互联网上找到的一些代码。我不确定该如何使用。我只是用枚举键/值填充了 members ,并且它起作用了,但是我很好奇这个元类的全部含义。我假设它与ctypes有关,但是我找不到关于ctypes子类化的很多信息。我知道EnumerationType并没有使用我使用Enumeration的方式。 from ctypes import * 类EnumerationType(type ..
发布时间:2020-10-12 23:22:29 Python

Python CTypes-DLL函数接受结构崩溃

我必须在ms Windows XP下访问POS终端。我正在使用python 2.7。 我加载的DLL中执行付款的关键功能接受两个指向结构的指针,但返回1(通讯错误)但没有其他消息时会崩溃。 请注意,在调用支付功能时,并非POSData结构的所有元素都接收值。我尝试过的其他功能(GetVersion)确实有效。 这里的规范和我的代码: typedef struct { char ..
发布时间:2020-10-12 23:22:25 Python

Python ctypes和动态链接

我正在用C语言编写一些库,其中包含一些我想通过ctypes从Python调用的函数。 我已经成功地完成了另一个库,但这库仅具有非常重要的依赖关系(即 fstream , math , malloc , stdio , stdlib )。我正在处理的另一个库具有更复杂的依赖性。 例如,我将尝试使用 fftw3 。作为测试,我将尝试编译一个简单的 .cpp 文件,其中包含: int ..
发布时间:2020-10-12 23:21:20 Python

强制ctypes.cdll.LoadLibrary()从文件中重新加载库

我有以下代码 import ctypes lib1 = ctypes.cdll.LoadLibrary(“ ./ mylib .so“) #修改mylib.so(代码生成和编译),甚至将其删除 lib2 = ctypes.cdll.LoadLibrary(” ./ mylib.so“) 问题是 lib2 是指原始共享库,而不是新共享库一。如果我在两次调用之间删除myl ..
发布时间:2020-10-12 23:21:13 Python

使用Python Ctypes和C ++时,如何解决分段错误?

假设我在C ++中具有以下两个函数签名: BYTE * init(BYTE * Options,BYTE * Buffer ) 和: int next(BYTE *接口,BYTE *缓冲区) 我首先在C ++中初始化 Interface 类,然后从Python调用 next 函数,并引用该类 第一个函数通过以下方式返回指向接口的 BYTE ..
发布时间:2020-10-12 23:21:11 C/C++开发