Memory 无法使用python 3.3+;的ctypes访问.dll;
当我将python 3.2安装升级到3.3+时,我偶然发现了一个问题。我正在寻找一个解决方案,但找不到任何东西 我使用.dll来使用使用Delphi实现的断字算法。 .dll正在使用3.3版以下的所有python版本。当我尝试使用python 3.3+访问它时 我得到以下错误:Memory 无法使用python 3.3+;的ctypes访问.dll;,memory,ctypes,Memory,Ctypes,当我将python 3.2安装升级到3.3+时,我偶然发现了一个问题。我正在寻找一个解决方案,但找不到任何东西 我使用.dll来使用使用Delphi实现的断字算法。 .dll正在使用3.3版以下的所有python版本。当我尝试使用python 3.3+访问它时 我得到以下错误: File "C:\Python34\lib\ctypes\__init__.py", line 351, in __init__ self._handle = _dlopen(self._name, mode) OSEr
File "C:\Python34\lib\ctypes\__init__.py", line 351, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 998] Invalid access to memory location
我这样调用dll
hyph = windll.syllable
hyphenInput = 'testen'
#Set the input parameter
input_string = c_wchar_p(hyphenInput)
ShowDividing = c_bool(True)
ShowRootVowels = c_bool(True)
Sprechsilben = c_bool(True)
PrefixAsMorpheme = c_bool(False)
exception = c_wchar_p('')
hyph.DivideOnSyllables.restype = c_wchar_p
hyphenation = hyph.DivideOnSyllables(input_string, ShowDividing, ShowRootVowels, Sprechsilben, PrefixAsMorpheme, exception)
希望有人能帮我
先谢谢你
编辑1:
我从其他人那里得到了DLL。我得到的标题信息,如下所示:
function DivideOnSyllables(Input: PWideChar;
ShowDividing,ShowRootVowels,
Sprechsilben,PrefixAsMorpheme: Boolean;
Exceptions: PWideChar): PWideChar;
编辑2:
似乎打开DLL的调用(windell(‘音节’)已经产生了错误 测试加载系统DLL的模块,例如
psapi=windell('psapi')
。另外,在一个不相关的切线上,显示DivideOnSyllables
的原型,因为您对异常执行的操作看起来很奇怪。您还可以直接传递hyphenInput
和True
和False
值;那里不需要c\u wchar\u p
和c\u bool
。系统DLL正在工作。我添加了我得到的标题信息。你需要更多的信息吗?如果是这样的话,如果你能告诉我如何收集它们,那就太好了。你确定它在系统路径上找到了正确的DLL吗?尝试一个绝对路径,例如windl(r“C:\path\To\typel.dll”)
。回到不相关的切线,如何使用异常
?它应该是错误消息的缓冲区吗?