CFFI : callback示例

CFFI官方文档地址:

https://cffi.readthedocs.io/en/latest/

环境:win10 - 64位   +   python 3.6 - 64位  +  dll - 64位

callbakc.cpp ( 生成dll)

#include "stdafx.h"
#include <stdio.h>

#ifndef DLL_API
#define DLL_API __declspec(dllexport)
#endif 

extern "C"{

	DLL_API void call_callback1(int(*func1)(int)) {
		printf("callback1 begin to work..\n");
		int a = func1(3252);
		printf("a = %d\n", a);
		printf("callback1 end to work..\n");
	}

}

 

callback.py

from cffi import FFI

ffi = FFI()
ffi.cdef('''
        void inerchange(int * num);
        void call_callback1(int(*func1)(int));
        void call_callback2(void(*func2)(int *));
        ''')

libdll = ffi.dlopen("callbakcdll.dll")


@ffi.callback("int(int)")
def set_struct(x):
    x = x + 1
    print("set_struct:  ", x)
    return x
libdll.call_callback1(set_struct)

 

输出:

 

注意事项:

(1)dll 版本和 python版本要对应

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值