动态库 · 函数

创建回调

把 Python 函数包装成 C 函数指针。

调用签名(函数, 返回类型: 'Any' = '整数', 参数类型: 'Iterable[Any] | None' = None, 调用约定: 'str' = 'cdecl')
ZHONGWEN
PYTHON
Chinese example

中文代码示例

# 案例:创建回调
定义 加一(值):
    返回 值 + 1
设 回调 = 动态库.创建回调(加一, 返回类型="整数", 参数类型=["整数"])
打印(回调(3))
可直接放进 .cs / .中py 文件运行。转换器会把中文代码交给真实 Python 解释器。
Parameters

参数说明

4 个参数
参数类型 / 传入方式说明
函数可选 · 默认 无
未声明位置参数或 字段名=值

Python 函数,会被包装成 C 函数指针传给外部 DLL。

常见错误:漏传会报 TypeError: missing required argument: '函数';检查调用是否漏了这行
返回类型可选 · 默认 '整数'
Any位置参数或 字段名=值

函数返回值 C 类型,例如 整数、小数、字符串、指针、空。

常见错误:C 类型名拼写错误会报 KeyError;对照 类型清单() 输出确认
参数类型可选 · 默认 None
Iterable[Any] | None位置参数或 字段名=值

函数参数 C 类型列表,例如 ["整数", "字符串"]。

常见错误:C 类型名拼写错误会报 KeyError;对照 类型清单() 输出确认
调用约定可选 · 默认 'cdecl'
str位置参数或 字段名=值

动态库调用约定,常见值为 cdecl、stdcall、python;Windows DLL 需要按导出方式选择。

常见错误:Windows DLL 调用约定选错会栈错乱或报 OSError;按导出方式选 cdecl/stdcall
Playbook

基础用法 · 进阶组合 · 错误排查

# 案例:创建回调
定义 加一(值):
    返回 值 + 1
设 回调 = 动态库.创建回调(加一, 返回类型="整数", 参数类型=["整数"])
打印(回调(3))