-
1 votesanswersviews
如何在进入dll时访问堆栈上传递的参数?
我从ctypes调用NASM 64位DLL . dll需要五个输入参数 . 在Windows调用约定中,前四个在rcx,rdx,r8和r9中传递,第五个在堆栈上传递 . x64调用约定概述doc(https://docs.microsoft.com/en-us/cpp/build/overview-of-x64-calling-conventions)说"Any parameters ... -
0 votesanswersviews
使用ctypes和python并调用libc accept时的EFAULT
创建套接字时,普通的python套接字模块不支持除AF_INET之外的协议: 来自cpython socketmodule.c: a中仅支持AF_INET,AF_INET6和AF_UNIX地址系列便携式方式,但支持AF_PACKET,AF_NETLINK和AF_TIPC在Linux下 . 所以我已经开始使用ctypes手动调用正常的BSD套接字库的套接字,绑定,监听和接受来自libc的调用 .... -
1 votesanswersviews
Python调用带有ctypes的Rust FFI在退出时崩溃,“指针被释放未被分配”
我正在尝试释放分配给 CString 的内存并使用ctypes传递给Python . 但是,Python崩溃了一个malloc错误: python(30068,0x7fff73f79000) malloc: *** error for object 0x103be2490: pointer being freed was not allocated 这是我用来将指针传递给ctypes的Rust函... -
9 votesanswersviews
使用ctypes在Python中使用Rust返回的数组
我有一个返回 array 的Rust函数,我想在 Python 中使用这个数组,它可能是 list 或 numpy.array 它并不重要 . 我的Rust功能如下所示: #[no_mangle] pub extern fn make_array() -> [i32; 4] { let my_array: [i32; 4] = [1,2,3,4]; return my_arr... -
0 votesanswersviews
通过FFI调用Rust函数时访问冲突
正如 Headers 所述,当我尝试在Python中调用以下Rust代码时,我得到了访问冲突 . 这是Rust代码: #![crate_type = "dylib"] extern crate libc; use libc::c_char; use std::ffi::CStr; use std::str; #[repr(C)] pub struct Additional... -
3 votesanswersviews
如何使用Ctypes从Rust到Python获取自定义对象列表?
我试图通过函数调用将一个自定义对象数组从Rust发送到Python: pub struct Item { name: String, description: String, tags: Vec<String> } pub struct SearchResults { count: usize, results: Vec<Item>... -
-1 votesanswersviews
Python - 函数参数不起作用
我正在制作这个小程序,用户可以在屏幕的x和y轴上输入他们希望移动鼠标的位置,以及他们想要点击该像素的时间 . My problem 是当我尝试将变量放入此函数时,参数显然无法转换? SetCurPos()是问题,它将采用SetCurPos(x,y),但我收到错误: File "C:\Python27\Scripts\ManipulationTools.py", line 13,... -
0 votesanswersviews
C - 有符号和无符号整数
我正在深入研究C,因为我需要将ctypes库导入python以允许键盘控制 . 我正在尝试了解以下代码的工作原理: import ctypes import time SendInput = ctypes.windll.user32.SendInput # C struct redefinitions PUL = ctypes.POINTER(ctypes.c_ulong) class Ke... -
0 votesanswersviews
将多维numpy数组转换为ctypes数组的最有效方法
您好,我在python中使用ctypes模块从python运行一些图像处理C代码,以优化我的代码,并减少执行时间 . 为此,我正在将图像读入一个numpy数组,然后使用内核将2D卷积应用于图像,从而生成过滤后的图像 . 我希望在C中实现相同,以节省一些执行时间 . 因此,问题的第一部分是将numpy图像数组转换为ctype数组,以便我可以在C中执行卷积 . 这是我的C代码,它现在什么都不做,但我需... -
0 votesanswersviews
直接在Scipy稀疏矩阵上使用Intel mkl库来计算A点A.T,内存较少
我想从python中调用mkl.mkl_scsrmultcsr . 目标是以compressed sparse row格式计算稀疏矩阵C.稀疏矩阵C是A与A的转置之间的矩阵乘积,其中A也是csr格式的稀疏矩阵 . 当用scipy计算C = A点(AT)时,scipy似乎(?)分配新的内存用于保持A(AT)的转置,并且肯定为新的C矩阵分配内存(这意味着我不能使用现有的C矩阵) . 所以,我想尝试直接... -
-1 votesanswersviews
Python ctypes:如何在回调中为C函数分配输出缓冲区
我有下一个回调作为c代码函数中的一个参数: typedef unsigned char* (*my_callback)(int size); //for example: unsigned char * tmp_buff = nullptr; tmp_buff = i_alloc_fn(10); printf("Tmp buff addr = %d.\n", tmp_buff)... -
7 votesanswersviews
Python 3.5,ctypes:TypeError:期望的字节或整数地址而不是str实例
我遇到了ctypes的问题 . 我认为我的类型转换是正确的,错误对我没有意义 . “arg - ct.c_char_p(logfilepath)”行错误TypeError:预期的字节或整数地址而不是str实例 我试过python 3.5和3.4 . 功能我打电话: stream_initialize('stream_log.txt') Stream_initialize代码“ def st...