ctypes相关内容

如何从Python调用MPI .so文件?

我有一个共享的目标文件,其中包含已编译的C ++ MPI Hello World代码。当我尝试使用ctypes从Python调用它时,我得到了一些无用的错误列表。 mpiHello.cpp: #include extern“ C” void mpiHello(){ int等级,大小; MPI_Init(NULL,NULL); MPI_ ..
发布时间:2020-10-12 23:12:06 C/C++开发

使用ctypes从Python中C函数返回的结构访问数据

我知道这个问题已经得到治疗,但是我找不到适合我的东西,所以我想我的问题与其他问题略有不同。 基本上,我的工作是使用C函数将C函数包装到python代码中。 我的目标是在C函数中计算一些量,将它们存储到单个结构中,然后在Python中返回该结构,以便在其中读取该结构中的所有不同数据。 所以: 要在python中定义我的结构,我使用: class BITE(ctypes.S ..
发布时间:2020-10-12 23:11:46 其他开发

python ctypes Win32方式窗口标题被截断了吗?

我一直在尝试通过使用python(2.7)和ctypes模块创建Win32应用程序。创建并显示了窗口,但是窗口的标题被截断了。我得到的是“ M”而不是“我的测试窗口”。我在做什么错了? 预先感谢 P.S。下面是代码和屏幕截图: #-*-编码:utf-8-*- 从sys导入平台,退出 从ctypes导入* 从ctypes.wintypes导入DWORD,HWND,HANDLE,L ..
发布时间:2020-10-12 23:09:36 Python

在Golang中访问C数组

我有两个文件, module.go 和 test.py 。我的目标是加快一些在python中完成的计算,但是在访问go中的整数数组时遇到问题。 module.go package main import“ C” //导出示例 func示例(testArray [] C.int)C.int { return testArray [2] } func mai ..
发布时间:2020-10-12 23:06:07 Python

如何使用ctypes在Python中模拟动态大小的C结构

我正在编写一些Python代码,以与广泛使用结构的C DLL进行交互。 其中一个结构包含嵌套结构。我知道这对于ctypes模块来说不是问题。问题在于,在C中,有一个经常使用的结构是通过宏定义的,因为它包含一个可以变化的“静态”长度数组。这很令人困惑,所以这里有一些代码 struct VarHdr { int size; } #define VAR(size)\ str ..
发布时间:2020-10-12 23:05:10 Python

Python ctypes in_dll字符串分配

我可以使用ctypes在DLL中为全局C变量赋值。 以下是我正在尝试的示例: test.c包含以下内容 #include 字符名称[60]; 无效测试(void){ printf(“ Name is%s\n”,name); } 在Windows(cygwin)上,我如下构建DLL(Test.dll) : gcc - ..
发布时间:2020-10-12 23:05:07 Python

在ctypes结构中访问np.array

我有一个带有动态分配数组的ctypes结构,即: array_1d_double = npct.ndpointer(dtype = np.double, ndim = 1, 标志=“连续”) 类Test(Structure): _fields_ =(“ x”,array_1d_double,..) test = Test() do_some_init_in_c(例如malloc) ..
发布时间:2020-10-12 23:05:04 Python

ctypes和指针操作

我正在处理图像缓冲区,并且我希望能够访问图像中的几行数据以使用c库进行分析。我已经使用create_string_buffer在Python中创建了8位像素缓冲区。有没有一种方法可以在不重新创建新缓冲区的情况下获得指向该缓冲区中某个位置的指针?我的目标是分批分析和更改该缓冲区中的数据,而不必进行大量缓冲区创建和数据复制。 在这种情况下,最终,C库正在对缓冲区进行所有操作,因此我实际上不必使用 ..
发布时间:2020-10-12 23:03:34 Python

如何在python中获取驱动器的名称

我有一个有效的驱动器号列表,我想向最终用户提供一个选择。我想向他们展示驱动器的名称。这是一些代码,应该向我显示驱动器 F的名称:\ : import ctypes kernel32 = ctypes.windll.kernel32 buf = ctypes.create_unicode_buffer(1024) kernel32.GetVolumeNameForVolum ..
发布时间:2020-10-12 23:02:06 Python

如何将具有0值字节的char *转换为python字符串?

使用ctypes模块,我可以轻松地将POINTER(c_char)或c_char_p类型导入python,但是这些都不提供以包含零值字节的python字符串结尾的方法。 c_char_p终止为零,这意味着来自C的char *数组终止于第一个零值。 POINTER(c_char)是建议的方法是导入可以具有0个值的二进制数据,但是似乎没有一种方法可以直接将其转换为python字符串。 ..
发布时间:2020-10-12 23:02:02 Python

Python Ctypes:将返回的C数组转换为python列表,而没有numpy

我正在使用Python Ctypes访问某些C库。 我连接的函数之一返回 const * double 实际上是一个双精度数组。 当我在Python中获得结果时,如何将该数组转换为python列表? C函数的签名: const double * getWeights(); 我们假设它返回的数组包含0.13和0.12。 我想获取一个Python列表: [ ..
发布时间:2020-10-12 23:01:48 Python