Python ctypes整数点

2024-06-16 13:05:00 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用python ctypes实现此函数

extern  int __stdcall GetRate(HANDLE hDev, int* pData)

如何设置数据类型以便打印pData值


Tags: 函数externctypesint数据类型handlepdatastdcall
1条回答
网友
1楼 · 发布于 2024-06-16 13:05:00

如果要调用名为GetRate的函数,可以执行以下操作:

from ctypes import *
from ctypes.wintypes import *

GetRate = windll.YOURLIB.GetRate
GetRate.restype = c_int
GetRate.argtypes = [HANDLE, POINTER(c_int)]

# now call GetRate as something like:
#
# hDev = ... # handle
# Data = c_int()
#
# GetRate(hDev, byref(Data)) # GetRate(hDev, &Data)
# print Data

但是,如果您试图声明回调函数指针,您可以这样做(我认为您正在寻找第一个):

from ctypes import *
from ctypes.wintypes import *

def GetRate(hDev, pDate):
    # Your implementation
    return 0

# you'll need GETRATE to pass it in the argtypes to the target function
GETRATE = WINFUNCTYPE(c_int, HANDLE, POINTER(c_int))
pGetRate = GETRATE(GetRate)

# now you can pass pGetRate as a callback to another function

相关问题 更多 >