美好的一天,
我正在尝试实现设备dll,以便稍后使我能够使用python脚本自动扫描测量值。目前,我正在努力从收到错误的DLL中调用所需的函数:
OSError:异常:访问冲突读取为0x00000000571E89E1
我要使用的代码是:
import ctypes as ct
p517 = ct.cdll.LoadLibrary("PI_GCS2_DLL_x64.dll")
p517.PI_InterfaceSetupDlg.restype = ct.c_int
p517.PI_InterfaceSetupDlg.argtype = ct.c_char_p
p517.PI_InterfaceSetupDlg()
在Python中使用C语言是我的新手,但是查看DLL中的相关功能:
int PI_InterfaceSetupDlg (常量字符* szRegKeyName)
打开对话框,让用户选择接口并创建一个新的PI对象。以后所有控制此控制器的调用都需要此调用返回的ID。有关所显示对话框的详细说明,请参见“界面设置(p。19)”。
参数: Windows注册表中用于存储设置的szRegKeyName密钥,如果密钥名称为NULL,则使用的密钥为“ HKEY_LOCAL_MACHINE \ SOFTWARE <您的密钥名称>”,或者使用默认密钥“ HKEY_LOCAL_MACHINE \ SOFTWARE \ PI \ PI_GCS2_DLL”使用“。”。 /> 退货: 新对象的ID,如果用户按下“ CANCEL”,则为-1,无法打开界面,或者没有控制器在响应。
我以为我已经正确定义了argtype和restype,但是与此类似的大多数问题似乎是由错误的类型定义引起的。我在这里想念什么吗?预先感谢您的任何建议