gpt4 book ai didi

python - 如何在 ctypes 中使用 typedef

转载 作者:行者123 更新时间:2023-11-28 17:58:57 26 4
gpt4 key购买 nike

我正在尝试使用 ctypes 库在 Python 中包装一个 C 库。

我用这种方式包装结构

文件.c

typedef struct {
int x;
int y;
} Point;

文件.py

import ctypes


class Point(ctypes.Structure):
_fields_ = [("x": ctypes.c_int), ("y", ctypes.c_int)]

但我有这样的语句,无法找到如何包装它并获取 MyFucntion 类型。

typedef char* (*MyFunction)(char*);

最佳答案

检查 [Python 3.Docs]: ctypes - A foreign function library for Python .

那是一个函数指针。你可以这样包装它:

FuncPtr = ctypes.CFUNCTYPE(ctypes.POINTER(ctypes.c_char), ctypes.POINTER(ctypes.c_char))

但这在很大程度上取决于您将如何使用它。

作为旁注,typedefctypes 没有任何关系:例如 Point 定义在没有 < em>typedef(struct Point { ... };)。

关于python - 如何在 ctypes 中使用 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56706290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com