【发布时间】:2015-04-23 13:21:45
【问题描述】:
我想从 Python 调用 DLL 中的函数。但我收到了这个错误:
"Attribute Error function not found"
这是我的代码:
import os
import ctypes
os.chdir("C:\\Program Files\\Compact Automated Testing System V2.0")
# Load DLL into memory.
CATSDll = ctypes.WinDLL ("CATS.dll")
# Set up prototype and parameters for the desired function call.
CATSDllApiProto = ctypes.WINFUNCTYPE (ctypes.c_uint8,ctypes.c_double)
CATSDllApiParams = (1, "p1", 0), (1, "p2", 0),
# Actually map the call (setDACValue) to a Python name.
CATSDllApi = CATSDllApiProto (("setDACValue", CATSDll), CATSDllApiParams)
# Set up the variables and call the Python name with them.
p1 = ctypes.c_uint8 (1)
p2 = ctypes.c_double (4)
CATSDllApi(p1,p2)
但 DLL 文档显示了一个函数 setDACValue,其中 ChannelId 和 DAC Voltage 作为输入。
以上内容基于 StackOverflow 提供的一段代码。
我也尝试过使用 cdll.LoadLibrary & 然后调用函数的简单方法,但这也给出了同样的错误。
谁能告诉我什么是错的?谢谢。
完整追溯:
Traceback (most recent call last):
File "C:\Users\AEC_FULL\Softwares\eclipse\plugins\org.python.pydev_3.9.2.201502050007\pysrc\pydevd.py", line 2235, in <module>
globals = debugger.run(setup['file'], None, None)
File "C:\Users\AEC_FULL\Softwares\eclipse\plugins\org.python.pydev_3.9.2.201502050007\pysrc\pydevd.py", line 1661, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Users\AEC_FULL\Saravanan\Workspace\CATS\CATS.py", line 18, in <module>
CATSDllApi = CATSDllApiProto (("setDACValue", CATSDll), CATSDllApiParams)
AttributeError: function 'setDACValue' not found
【问题讨论】:
-
能否提供
setDACValue函数的签名? -
嗨 kvorobiev ..添加了签名..