SWIG 的 Python ctypes 回调函数

2024-05-04

我有一个 SWIG C++ 函数,它需要一个函数指针 (WNDPROC),并且想给它一个由 ctypes.WINFUNCTYPE 包装的 Python 函数。

在我看来,这应该是兼容的,但 SWIG 的类型检查会引发异常,因为它不知道 ctypes.WINFUNCTYPE 类型实际上是 WNDPROC。

我该怎么做才能将我的回调传递给 SWIG 以便它理解?


我没有 Windows 机器来真正检查这一点,但我认为您需要创建一个类型映射来告诉 swig 如何将 PyObject 包装器转换为 WNDPROC:

// assuming the wrapped object has an attribute "pointer" which contains 
// the numerical address of the WNDPROC
%typemap(in) WNDPROC {
    PyObject * addrobj = PyObject_GetAttrString($input, "pointer");
    void * ptr = PyLong_AsVoidPt(addrobj);
    $1 = (WNDPROC)ptr;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SWIG 的 Python ctypes 回调函数 的相关文章

  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • MS SQL 2008 如何读取日志

    我有一个有很多行的表 有什么办法可以找出来当插入具体行时 我没有创建 更新时间列 Thanks 检查日志以读取此类信息可以在单个日志条目的基础上完成 但该格式仍然没有记录 而且解码起来确实不容易 我只会出于纯粹的兴趣或取证目的而查看它 如果
  • 使用 parse.com 并遇到分配内存问题

    我是编程新手 过去 3 个月我一直在制作应用程序 并学到了一些东西 但我还没有遇到如何解决这个问题 我一直使用 Parse com 作为我的服务器 发送图片 保存用户数据等 有了所有这些数据 如果我多次打开某些活动 特别是带有图片的活动 应
  • Windows Workflow Foundation 4 和 ASP.NET MVC

    我们正在评估 Windows Workflow Foundation 4 在基于 MVC 3 的 Web 应用程序中的使用 我们希望为不同的项目创建灵活的订单工作流程 有人知道有关此类应用程序的一般架构或实践实验室的详细信息吗 一些具体问题
  • SAXException:错误的信封标签

    我正在尝试连接到通过 Web 服务客户端保护的 Web 服务 https Eclipse 生成了一个基于存根的 Web 服务客户端 对我来说看起来不错 当我尝试从 Web 服务调用方法时 问题就出现了 String a String web
  • 循环数据并创建单独的图形

    我正在循环遍历不同分子名称的列表 并尝试为每个分子生成单独的无花果 但对于每个连续的分子 新的数据也包含了之前的所有数据 我在收集数据后打印了数据 并且对于每个循环 它都显示了正确的数量 这是我的完整代码 import matplotlib
  • 获取 firebase 函数实例 id?

    据我了解 firebase 函数在Google 函数执行环境 这意味着函数在单个实例中执行 根据这个文件 https cloud google com functions docs concepts exec 新的函数实例仅在两种情况下启动
  • pymssql(python模块)无法使用临时表

    这不是一个问题 而是一个先发制人的答案 我从这个网站得到了很多帮助并想回馈 当我尝试使用 pymssql 通过 python 运行它时 我正在努力处理大量 SQL 查询 这些查询失败了 但直接通过 MS SQL 运行时却运行良好 例如 就我
  • 使用 Android Volley 发出 HTTPS 请求

    我正在尝试使用以下代码发出 https 请求 RequestQueue queue Volley newRequestQueue getApplicationContext request new Request
  • Laravel Eloquent 在 with() 函数中使用别名

    再会 laravel 中使用 with 函数时是否可以使用别名 举个例子 posts Post where condition gt with user as friend gt get 简短的回答是否定的 但您可以定义与要使用的别名的关系
  • 有聚合物模板的印章活动吗?

    我试图在每次标记其内容时将输入元素聚焦在聚合物模板内 问题是在模板加载之前我无法选择输入元素 目前 我只是使用 setTimeout 在模板加载后 100 毫秒集中输入 但我想知道是否有更优雅的解决方案 此外 自动对焦属性不起作用 因为模板
  • java regex,仅当不在引号或括号中时才以逗号分隔

    我想通过正则表达式进行java split 当字符串不在单引号或括号中时 我想在每个逗号上分割字符串 例子 Hello my friend how are you should give hello my friend how are yo
  • 搜索引擎可以读取 CSS 吗?

    我用标签来表示句子的重要性 然而 它破坏了页面风格的一致性 所以我用CSS把它改回来 结果是 对于访问者来说是相同的 但对于搜索引擎 SE 来说 显然是不同的 这正是SE们所烦恼的 所以我的问题是SE们能否读取CSS 并用它进一步判断整个页
  • 生成具有给定分布的随机数

    看看这个问题 快速选择随机数的概率 https stackoverflow com questions 26092977 swift probability of random number being selected 最上面的答案建议使
  • 如何防止 HTML 文本孤儿?

    我经常在图像周围包裹文字 有时文字包裹起来很笨拙 如下所示 在 HTML 中 图像向左浮动 文本如下 p img src images image p p This is my David Copperfield em I was born
  • 如果覆盖率低于一定百分比,则单元测试失败

    我制作了一个执行的 makefilego test cover 是否有可能失败make unit tests如果覆盖范围低于 X 则命令 我该怎么做呢 您可以使用TestMain在你的测试中做到这一点 TestMain 可以充当测试的自定义
  • 我可以将 JPA 2.0 与 Google App Engine 一起使用吗?

    我可以将 JPA 2 0 例如 EclipseLink 与 Google App Engine 一起使用吗 Google AppEngine 的 DataNucleus 插件支持 JDO 和 JPA API 来访问 Google AppEn
  • 将属性类型作为参数传递

    有没有办法将属性作为参数传递给函数 class Car let doors Int 4 let price Int 1000 有没有办法将 Car 属性作为类型传递给函数 我想实现以下目标 func f1 car Car property
  • 无法将 QMap 传递到 SLOT

    所以 这有效 h public slots void addMenu QString passedName signals void clicked const QString text cpp signalMapper new QSign
  • Spring JPA自定义查询与WHERE条件中的参数组合?

    如何在 Spring Data 中编写至少使用三个参数之一的 JPA 查询 我有这三个参数 Id PK Name Surname 客户端必须至少提供这三个参数之一 我想通过这些非空参数找到用户 是否可以为我的存储库创建此类自定义查询 或者我
  • SWIG 的 Python ctypes 回调函数

    我有一个 SWIG C 函数 它需要一个函数指针 WNDPROC 并且想给它一个由 ctypes WINFUNCTYPE 包装的 Python 函数 在我看来 这应该是兼容的 但 SWIG 的类型检查会引发异常 因为它不知道 ctypes