gpt4 book ai didi

python - GDAL:获取底层 C 对象的指针/句柄

转载 作者:行者123 更新时间:2023-12-01 06:02:23 25 4
gpt4 key购买 nike

我有以下设置:

  • 具有 Python 绑定(bind)的 GDAL 库 (SWIG)
  • 一些粘合代码 (Python)
  • 与 ctypes 交互的 C 库

我想将 SWIG Dataset 对象的底层数据集指针/句柄传递给我的 C 库。我怎样才能检索这个指针?

不想想要将 C 库与 SWIG 连接起来。

最佳答案

这实际上很简单,我希望我的解决方案是可移植的。鉴于我的 C 函数定义看起来有点像这样:

int myfunc(GDALDatasetH ds);

然后我的ctypes定义是这样的:

_lib = C.LibraryLoader(C.CDLL).LoadLibrary(lib_path)
_myfunc = _lib.myfunc
_myfunc.argtypes = [C.c_void_p]
_myfunc.restype = C.POINTER(C.c_char)

我可以使用以下方式调用 C 函数:

ds = gdal.Open(path)
...
_myfunc(C.c_void_p(long(ds.this)))

关于python - GDAL:获取底层 C 对象的指针/句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9683340/

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