如何获取回调函数的参数值?

问题描述

| 我正在尝试在python中调用回调函数。 我在路径“ \ dllpath \”中存在一个dll。 该dll具有如下所述的回调函数功能原型: ULONG SetBytetotalsCallback(tFNBytetotals pCallback,BYTE间隔); 参数说明: tFNBytetotals pCallback:模式输入,回调函数指针 字节间隔:模式输入,间隔以秒为单位 回调原型: void BytetotalsCallback(ULONGLONG txTotalBytes,ULONGLONG rxTotalBytes); 我想调用函数SetBytetotalsCallback,并且要打印txTotalBytes和rxTotalBytes的值。 我尝试使用以下代码
from ctypes import *
filepath = r\"<path to dll>\"
gdll = WinDLL(filepath)
tx = c_longlong
rx = c_longlong
pCallback = CFUNCTYPE(tx,rx)
def BytetotalsCallback(t,r):
    try:
        print \'Printing tx and rx: \'
        #print \'Transmitted bytes: \',t[0]
        #print \'Received bytes: \',r[0]
        #return 0
    except:
        print \'Error...\'

bytetotal_func =pCallback(BytetotalsCallback)
SetBytetotalsCallback = gdll.SetBytetotalsCallback
try:
    print \'Return of SetBytetotals:     \',SetBytetotalsCallback(pCallback(BytetotalsCallback),c_byte(128))

except:
    print \'Error found: \'
执行上述代码后,我发现函数BytetotalsCallback没有被调用,但是SetBytetotalsCallback(pCallback(BytetotalsCallback),c_byte(128)) 接到电话并成功返回。 有人能帮我吗? 提前致谢。 问候, 吉特     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)