ctypes相关内容

序列化ctype联合

是否有一种方法可以序列化ctype联合以便通过套接字发送它们?我正在尝试通过套接字将联合发送到网络服务器,但是我无法序列化数据,而是将其作为联合对象的实例发送.是否可以使用Python Struct()库执行此操作(我不认为它支持联合)?任何帮助深表感谢! 解决方案 如果在 ctypes.Structure 或 ctypes.Union bytes()/code>,您将获得可以通过套接字传 ..
发布时间:2021-04-27 20:02:06 Python

取消引用c_void_p的整个数据,不仅是第一个字节

我现在有一个关于Python ctypes和调用C函数的问题,困扰着我几天.我正在使用Python 3.5和ctypes包装C .dll. 我有一个C函数接受 void ** 作为输出参数.调用后,它应该包含一个指向图像的某些8位RGB数据的指针. foo(void ** bar) 我声明我的Python参数和函数调用如下: >> bar = c_void_p()>> foo(by ..
发布时间:2021-04-27 20:02:03 Python

python中的邪恶ctypes hack

我首先要说的是,这个问题纯粹是出于兴趣而提出的,我绝不打算在任何严肃的项目中使用如此难以置信的邪恶.(是的,这是一个问题) 我一直在尝试在CPython的内部工作中汇总一些信息,据我所知,应该有可能操纵小整数的实际值,这样(对于实例)1 + 2的计算结果可能不是3.我几乎没有这种低级黑客方面的专家,而我所能实现的就是段错误.这是到目前为止我得到的: 导入ctypesctypes.c_int ..
发布时间:2021-04-27 20:02:00 Python

Python从c_double转换为float

我是Python的新手.我想知道将c_double(从ctypes)转换为浮点数的最佳方法是什么.我的代码可以正常工作,但是我想知道是否有Python方式来做到这一点.我目前正在做的是: FloatValue = float(str(d_Val)[9 :( len(str(d_Val))-1)) 其中 d_Val 是 c_double(-10.0),而我想保留 -10.0 在Windows ..
发布时间:2021-04-27 20:01:57 Python

WindowsError:[错误127]找不到指定的过程

此错误是什么意思?我在搜索任何文档时遇到了麻烦.代码运行正常,重新启动Windows后突然中断.我查看了进程监视器,发现并访问了DLL,没有任何权限错误 文件"c:\ Python27 \ lib \ ctypes \ __ init__.py",第435行,位于__getattr__中dll = self._dlltype(名称)__init__中的第365行的文件"c:\ Python27 ..
发布时间:2021-04-27 20:01:54 Python

ctypes:获取c函数的实际地址

这很棘手(至少对我来说是这样:-),也许不可行.但是我想问你. 我有这个c共享库: #include#include静态整数变量= -666;int get_value(){返回变量}void print_pointer_to_get_value(){printf("pointer_to_get_value:%p \ n",& get_value ..
发布时间:2021-04-27 20:01:47 Python

ctypes/C ++ segfault访问成员变量

我对python ctypes模块并不陌生,但这是我第一次尝试在一个代码中组合C ++,C和Python.我的问题似乎与 Seg错误类似当在Python和C ++中使用ctypes时,但是,我似乎无法以相同的方式解决问题. 我有一个名为 Header.cpp 的简单C ++文件: #includeFoo类{上市:整数位;Foo(int nb){nbits = nb; ..
发布时间:2021-04-27 20:01:41 C/C++开发

无法使用ctypes在python中加载dll

我正在尝试使用ctypes加载dll形式的python代码,这引发了错误. 我的python代码: 导入ctypes从ctypes import *hllDll = ctypes.WinDLL("c:\\ Users \\ saar \\ Desktop \\ pythonTest \\ check.dll") ,并且出现了此错误: Traceback(最近一次通话最近): ..
发布时间:2021-04-27 20:01:35 Python

Python ctypes CFofType的地址

与我的其他问题 有关 如何获取CFuncType对象的地址(虚拟函数指针)?addressof()没有报告正确的地址. C代码: 外部"C" _declspec(dllexport)int addr(int(* func)()){int r =(int)func;返回r;} Python代码: def test():返回42t = CFUNCTYPE(c_int)f = t(测 ..
发布时间:2021-04-27 20:01:32 Python

如何在python ctypes中使用UTF-16?

我有一个外国C库,该库在API中使用utf-16:作为函数参数,返回值和结构成员. 在Windows上使用ctypes.c_wchar_p可以,但是在OSX下ctypes在c_wchar中使用UCS-32,我找不到支持utf-16的方法. 这是我的研究 使用_SimpleCData子类化来重新定义_check_retval_ . 它允许将utf-16透明转换为Python字 ..
发布时间:2021-04-27 20:01:28 Python

如何使用ctypes将SendInput函数包装到python

我正在尝试从user32.dll获取SendInput函数,以便使用ctypes在python中工作.我是菜鸟,但从我从文档中读取的内容来看,您必须在python中创建该函数所需的结构,然后将其传递给功能. 导入ctypes导入键盘从ctypes import *lib = windll.user32KEYEVENTF_SCANCODE = 0x8KEYEVENTF_KEYUP = 0x2空格键 ..
发布时间:2021-04-27 20:01:24 Python

ctypes c_char_p的不同行为?

我对不同版本的python的这种行为感到困惑,并且不明白为什么? Python 2.7.5(默认,2013年8月25日,00:04:04)达尔文上的[GCC 4.2.1兼容Apple LLVM 5.0(clang-500.0.68)]键入“帮助",“版权",“信用"或“许可证"以获取更多信息.>>>c ="hello">>>a = ctypes.c_char_p(c)>>>打印(a.value ..
发布时间:2021-04-27 20:01:19 Python

python中的用户指针

*我正在尝试显示使用v4l捕获的网络摄像头的预览. 以下是代码的外观: 从ctypes导入 *从v4l2导入*从图像导入fromstring从Tkinter进口Tk,标签从ImageTk导入PhotoImage从ctypes.util导入find_librarylibc = CDLL(find_library('c'))posix_memalign = libc.posix_memal ..
发布时间:2021-04-27 20:01:16 Python

使用Python Ctypes加载dll

我已经看过此处给出的示例 ctypes-Beginner ,并以相同的步骤执行了相同的步骤C代码.我已经使用此处给出的C代码构建了一个.dll和.lib: http://wolfprojects.altervista.org/articles/dll-in-c-for-python/ //test.c__declspec(dllexport)int sum(int a,int b){返回a + ..
发布时间:2021-04-27 20:01:13 Python

python可以从C头文件加载定义吗?

我正在围绕C API编写python Wrapper.我有一个详尽的API描述,现在我正在为头文件中定义的枚举的实现而苦苦挣扎. 假设我在 myAPI.dll 中具有C API函数,该函数接受枚举作为参数,例如: void SomeFunction(SomeEnum数据) 从头文件中,我可以看到 SomeEnum 看起来像: 枚举SomeEnum {SomeValue = 1Som ..
发布时间:2021-04-27 20:01:10 Python

如何打包以分发使用共享库的python模块?

我正在为C库编写一些绑定,并且不确定如何配置所有这些以便分发,因此可以 pip install 我的软件包. 假设我有以下文件: library.c library.h wrapper.py 为了使我的包装库正常工作,必须: 编译library.c并创建一个共享库 在 library.h 上运行 ctypesgen 以生成ctypes代码 以下是命令: g ..
发布时间:2021-04-27 20:01:04 Python

如何在Python的进程中查找多级指针的值?

我有一个进程,我想在该进程中查找一个地址的值,但是该地址是一个多级指针,并附加了一些偏移量.如何在Python中执行此操作? 解决方案 我正在回答自己的问题,以记录在Python 3中执行此操作的方法. 首先,您需要某种方法来查找我们正在处理的过程的pid. 我使用psutil模块执行此操作,但是也有其他方法可以执行此操作. import psutildef get_pid ..
发布时间:2021-04-27 20:01:01 其他开发