问题标签 [ctypes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ctypes指针问题
我正在阅读 ctypes 教程,我遇到了这个:
但我一直在使用这样的指针:
为什么当我用一种方式做时,我可以访问 c_s.value,而当我用另一种方法做时,没有值对象?
谢谢大家!
python - 预期的 LP_c_double 实例而不是 c_double_Array - python ctypes 错误
我在 DLL 中有一个函数,我必须用 python 代码包装它。该函数需要一个指向双精度数组的指针。这是我得到的错误:
我试着像这样铸造它:
但我得到:
非常感谢任何帮助或指导。谢谢大家!
python - 如何使用 Python 的 ctypes 和 readinto 读取包含数组的结构?
我们有一些由 C 程序创建的二进制文件。
通过调用 fwrite 将以下 C 结构写入文件来创建一种类型的文件:
在 Python 中,我读取该文件的结构如下:
这很好用。我们的其他类型的文件是使用以下结构创建的:
我不确定如何在 Python 中创建结构。
python - ctypes 内存管理:如何以及何时释放分配的资源?
我正在用 Ctypes 为 Python 中的 C 库编写一个小包装器,我不知道从 Python 分配的结构是否会在超出范围时自动释放。
例子:
在 foo 返回后,那个点还会“活着”吗?我必须打电话clib.free(pointer(p))
吗?还是 ctypes 提供了一个函数来释放为 C 结构分配的内存?
python - Python ctypes 和没有足够的参数(缺少 4 个字节)
我试图调用的函数是:
从使用windll的自定义dll。
结果是:
使用 cdll 将字节丢失计数器增加到 12。上面的 errcode 是从同一个 dll 中的另一个函数返回的 errercode。如何正确接听电话?
python - 在win32上使用python和ctypes获取列表框内容时出现问题
感谢 python 和 ctypes,我想获取列表框的内容。
项目的数量是正确的,但文字是错误的。所有 text_len 均为 4,文本值类似于 '0\xd9\xee\x02\x90'
我尝试使用具有类似结果的 unicode 缓冲区。
我没有发现我的错误。任何的想法?
python - Python CreateFile 找不到 PhysicalMemory
我正在尝试访问 Windows 2000 系统的物理内存(尝试在没有内存转储工具的情况下执行此操作)。我的理解是我需要使用 CreateFile 函数来创建句柄。我使用了旧版本的win32dd来帮助我解决这个问题。网络上的其他文档指向我使用“\Device\PhysicalMemory”或“\\.\PhysicalMemory”。不幸的是,我得到了相同的错误。
实际上,每次运行返回的错误号都不同 \\.\PhysicalMemory == 3 和 \Device\PhysicalMemory == 2。对 pywin32、win32file、createfile、pyhandle 和 pywintypes 的审查没有产生关于不同返回值的信息.
这是我的代码。我正在使用 py2exe 让它在 Windows 2000 上运行(是的,它编译成功)。我意识到我可能对 DeviceIoControl 也有问题,但现在我专注于 CreateFile。
谢谢,切图
pointers - Python ctypes:复制结构的内容
我想用 ctypes 在 Python 中模仿一段 C 代码,代码类似于:
在 ctypes 中,无法执行以下操作:
因为contents
仍然是一个 Python ctypes Structure 对象,它本身作为引用进行管理。
一个明显的解决方法是手动复制每个字段(表示为不可变的 python int),但这不适用于更复杂的结构。此外,对于不是基本类型而是结构化类型的字段,需要递归完成。
我的另一个选择是使用memmove
和复制对象,就好像它们是缓冲区一样,但这似乎很容易出错(因为 Python 是动态类型的,所以将它与不同类型和大小的对象一起使用太容易了,导致内存损坏或分段故障)...
有什么建议么?
编辑:
我也可以使用结构的全新副本,所以这可能有用:
但我不知道是否可能存在某种奇怪的行为来复制 ctypes 代理,就好像它们是普通的 Python 对象一样......
python - 访问被拒绝在 Vista 上加载带有 ctypes 的 dll
我在使用 ctypes 时遇到问题。我正在尝试让以下项目在 Vista 上运行。
http://sourceforge.net/projects/fractalfrost/
我之前在 Vista 上使用过该项目,没有任何问题。我没有看到 svn 中的任何想法发生了变化,这导致了我认为这是这台机器本地的东西。事实上,我根本无法使用 ctypes 加载 dll。
有什么想法会导致这种情况以及更好的解决方法吗?
python - 在 ctypes.Structure 中使用枚举
我有一个通过 ctypes 访问的结构:
到目前为止,我的 Python 代码如下:
但我不确定batch_op
枚举使用什么。我应该把它映射到一个c_int
or 吗?