ctypes相关内容
奇怪的是,即使设置了 restype ,python也会返回 long ,而不是 c_void_p 。 例如; #python代码 来自ctypes import * dll = windll.LoadLibrary(“ my.dll”) dll.my_object_create.restype = c_void_p x = dll.my_object_create() 打印类
..
我必须将Python程序与C库接口。我需要调用的特定函数需要一个数组并返回一个double。以下函数具有相同的签名,比我自己的函数更易于理解: double sum(double * array,const int length ){ double total = 0; int i; for(i = 0; i
..
我有一个SWIG C ++函数,它希望有一个函数指针(WNDPROC),并想给它一个ctypes.WINFUNCTYPE包装的Python函数。 在我看来,这应该是兼容的,但是SWIG的类型检查引发异常,因为它不知道ctypes.WINFUNCTYPE类型实际上是WNDPROC。 什么 解决方案 我没有Windows机器吗?检查一下,但是我想您需要创建一个类型映射来告诉swig
..
我在C ++上有一个简单的测试功能: #include #include #include #include #include char fun(){ printf(“%i”,12); 返回“ y”; } 编译: gcc -
..
当调用在C共享库(动态库)中执行的循环时,Python将不会收到KeyboardInterrupt,并且没有任何响应(或处理)CTRL + C。 我该怎么办? 解决方案 除非您使用 PyDLL 或 PYFUNCTYPE ; GIL在ctypes调用期间被释放。因此,如果C代码未安装自己的信号处理程序,Python解释器应通过在主线程中引发 KeyboardInterrupt 来处理S
..
我对python和ctypes很陌生。我正在尝试完成看似简单的任务,但是却获得了意想不到的结果。我正在尝试将字符串传递给c函数,因此我使用的是c_char_p类型,但这给了我一条错误消息。简而言之,这就是发生的事情: >> from ctypes import * >> ;> c_char_p(“ hello world”) 追溯(最近一次通话为最后): 文件“”,
..
我在使用python连接到Internet时遇到问题。 我在一个使用PAC文件设置代理的公司网络中。现在,如果我能找到并解析PAC来获取所需的东西,但我却不能,那就很好了。 奇怪的地方: R可以通过wininet和.External(C_download,...)连接到互联网以下载文件,因此我知道这是可能的,当我这样做时: import ctypes winine
..
由于python和ctypes,我想获取列表框的内容。 item_count = ctypes.windll.user32.SendMessageA(hwnd,win32con.LB_GETCOUNT,0,0) 项目= [] for i in xrange(item_count): text_len = ctypes.windll.user32.SendMessageA(hwnd,w
..
我正在尝试使用python和ctypes将电机控制系统拼凑在一起,我需要做的一件事情是接受文本输入并将其转换为8位带符号整数。 下面是我要调用的函数的文档。应该输入到程序中的文本是'EPOS2' 数据类型定义如下所示(请注意,“ char *”等于8位有符号整数) 那么我如何将'EPOS2'转换为-128到127之间的值? 最终,我想做的是 import ctype
..
在 ctypes 模块中,底层的 c _ * 类型执行C样式截断而不会引发任何异常。例如, c_uint8(0x120)与 c_uint8(0x20)相同,与 c_uint8(32)。我正在寻找创建继承 ctypes 类型的类的方法,如果类型超出其范围,该类将引发自定义异常。到目前为止,这是我想出的: 从ctypes import * 类C_U8( c_uint8): def __i
..
目标是使用 dask.delayed 并行处理我的代码中的“令人尴尬的并行”部分。该代码涉及调用python函数,该函数使用 ctypes 包装c函数。为了理解我得到的错误,我写了一个非常基本的示例。 c函数: double zippy_sum(double x, double y) { return x + y; } Python: 从dask.d
..
我似乎无法使该代码正常工作,给我的印象是我做得正确。 从ctypes import * kernel32 = windll.kernel32 string1 =“测试” string2 =“ test2” kernel32.MessageBox(无, string1, string2, MB_OK) **我尝试将其更改为MessageB
..
我想知道如何从python执行 WlanScan 函数来启动无线网络扫描。我正在使用python模块 win32wifi 。它需要使用 WlanOpenHandle 和接口GUID pInterfaceGuid 获得的句柄。我不知道如何获取此GUID。任何帮助都将不胜感激。 解决方案 我安装了 Win32WiFi 模块,并在简短检查了@Castorix提供的 URL 之后(所有必需的信息都
..
我正在Kubuntu Trusty 64位上运行Python 3.4.0-0ubuntu2。 当试图为我的其他相关问题找到一个最小的例子时(但不能重复) 问题,我发现以下使用Python CType的琐碎代码导致 SIGABRT 调用 fn1 。 (请注意,在另一种情况下, fn1 可以正常工作,只有 fn2 无效并且发出信号是 SIGSEGV 。) lib.c: #inclu
..
这是一个分为两部分的问题。为了提供一些背景信息,我有一个C代码,如下所示: int c_func(const char * dir,float a,float b ,float c,float d) { printf(“%s\n”,dir); printf(“%f\n”,a); printf(“%f\n”,b); printf(“%f\n”,c); printf(“%f
..
我需要运行一系列python脚本来计算各种脚本,这些脚本运行良好,但是其中一个运行速度非常慢,必须使用C ++来完成。 C ++代码已准备就绪,但是我需要找到一种从python调用C ++函数并获取返回值的方法。 我找到了有关SWIG,但没有在Visual Studio的Windows上运行(由于其他限制,我必须在Windows的VS中运行)。我发现对于具有标准输入和输出值的非常简单的功能
..
我正在尝试在Windows 7上的应用程序中的SysDateTimeObject中设置日期。我正在使用python 2.7和ctypes库以及以下代码,该代码尝试将DTM_SETSYSTEMTIME消息发送到SysDateTimeObject: 从ctypes导入* 从ctypes.wintypes导入BOOL,HWND,RECT,LPCSTR,UINT,INT,DWORD,WORD
..
我试图在ctypes中重做Misaka模块,但是当我尝试使用bufputs时,我得到一个错误(请参阅第二代码示例的结尾)。当我将指针传递给函数时,我使用 pointer(b)。那不起作用, byref(b)也不起作用。 这是函数签名: / * bufputs•将NUL终止的字符串附加到缓冲区* / void bufputs( struct buf *,const char *
..
我正在尝试使用 ctypes 调用一个c函数,该函数作为指针从另一个函数返回。从文档看来,我可以通过使用 CFUNCTYPE 声明函数,然后使用指针创建实例来实现。但是,这似乎给了我一个错误。这是一些示例代码。 sample.c: #包括 unsigned long long simple(void * ptr) { printf(“ pointer =
..
我正在尝试使用 IOCTL_SET_DRIVE_LAYOUT 。我的初始编码尝试是使用此SO页面完成的: Python ctypes结构分配更多内存时被覆盖。您可以在其中看到类DeviceIoControl 的定义。 我使用IOCTL_DISK_CREATE_DISK成功初始化了磁盘,并使用IOCTL_DISK_SET_DRIVE_LAYOUT创建了具有一定大小的新分区,以下是磁盘管理的结果
..