当前位置:首页 » 编程软件 » python编译ctypes报错

python编译ctypes报错

发布时间: 2022-03-07 05:28:02

‘壹’ 怎么解决python导入dll报错windowserror:126, 不是路径的问题

解决办法:

加载的时候要根据你将要调用的函数是符合什么调用约定的。 windll和cdll分别是WinDLL类和CDll类的对象。

stdcall调用约定:

Objdll = ctypes.windll.LoadLibrary("dllpath")

Objdll = ctypes.WinDLL("dllpath")

cdecl调用约定:

Objdll = ctypes.cdll.LoadLibrary("dllpath")

Objdll = ctypes.CDLL("dllpath")

调用后就可以使用dll中的函数

print Objdll.Add(1, 102)

Objdll = ctypes.cdll.LoadLibrary("D:\dll\PosterDetector.dll")

(1)python编译ctypes报错扩展阅读

python导入dll报错展示:

使用python调用C++的dll报错,错误如下:

Traceback (most recent call last):File "E:/work/proc/video_web/application.py", line 157, in <mole>

Objdll = ctypes.cdll.LoadLibrary(os.path.join(APP_ROOT,"dll","PosterDetector.dll"))

File "d:python27Libctypes\__init__.py", line 444, in LoadLibrary

return self._dlltype(name)

File "d:python27Libctypes\__init__.py", line 366, in __init__

self._handle = _dlopen(self._name, mode)

WindowsError: [Error 126]

‘贰’ python用ctypes操作剪切板遇到问题!!

这边执行没有问题,版本如下

Python3.5.0(v3.5.0:374f501f4567,Sep132015,02:27:37)[MSCv.190064bit(AMD64)]onwin32

代码如下

importctypes
defget():
'''从剪切板中获得字符串'''
h=ctypes.WinDLL('user32.dll')
h.OpenClipboard(0)
aa=h.GetClipboardData(13)
ss=ctypes.c_wchar_p(aa)
h.CloseClipboard()
returnss.value
defset(mystr):
'''把字符串放到剪切板中,成功返回1,失败返回0'''
u=ctypes.WinDLL('user32.dll')
k=ctypes.WinDLL('kernel32.dll')
s=mystr.encode('utf-16')
s=s[2:]+b''
ss=ctypes.c_char_p(s)
u.OpenClipboard(0)
u.EmptyClipboard()
k.GlobalAlloc.argtypes=[ctypes.c_uint32,ctypes.c_uint32]
try:
cb=k.GlobalAlloc(0,len(s))
cb=ctypes.c_void_p(cb)
print(type(cb))
ctypes.memmove(cb,ss,len(s))
rr=u.SetClipboardData(13,cb)#13->unicode
finally:
u.CloseClipboard()
ifrr==0:
return0
else:
return1
#-----
set("abcdefg")

程序返回

<class'ctypes.c_void_p'>

‘叁’ python中用ctypes加载dll的错误,求教

检查一下DLL的python开发版本是否一致。
可能regulus_stream.dll还有有其他依赖的dll没找到...
原因是漏了某个dll..

‘肆’ Python调用dll文件返回错误无法解决,,,大神帮忙啊!

Error 126是未找到相应模块,在目录C:/Python27/Lib/ctypes下面有Sum.dll文件吗?

‘伍’ python怎么导入ctypes

1. 加载Windows系统自带的dll文件:
#加载cdecl调用约定的dll
msvcrt =cdll.msvcrt
#加载stdcall调用约定的dll
kernel32 =windll.kernel32
2. 加载自己dll文件,假如为addFuncDll,方式如下:
mydll =CDLL("addFuncDll.dll")
或者 mydll = cdll.addFuncDll
如果其中有函数add,计算两个整数的和,则使用方式如下:
result=mydll.add(4,5)
可以多一步指明add函数的参数类型(也可不指明):
mydll.add.argtypes= [c_int,c_int]
3. 结构体在python中定义为Structure的子类如下:
class POINT(Structure):
_fields_ = [("x", c_int),
("y",c_int)]
_fields中每一项为元组(成员名称,类型)
结构体还可以用于其他的结构体:
class RECT(Structure):
_fields_ = [("upperleft",POINT),
("lowerright",POINT)]

‘陆’ python Ctypes 重写C接口的问题

>>>fromctypesimport*
>>>ppvoid=POINTER(c_void_p)
>>>ppvoid
<class'__main__.LP_c_void_p'>

‘柒’ 如何通过python ctypes 在64位平台 取得模块handle 和函数地址

我用的是 64位的、
原因,我找到了:
GetMoleHandleA 和 GetProcAddress 在调用前需要 把 argtypes 和 restypes 类型进行定义就可以。原因可能是默认的是32位的返回值。

‘捌’ 如何查看 python import 文件位置

修改文件夹名字的方式排查,命令行 import ctypes 用的是 python 目录下 lib/ctypes 文件夹下的文件,而编译环境用的是同一个 python 目录(修改python文件夹名无法编译),但是修改 lib/ctypes 文件夹名,仍能编译通过 import ctypes。

‘玖’ python的ctypes问题

亲!缩进呢! 这真心不好猜啊

‘拾’ python ctypes 问题

我在交互式环境下使用没问题,你查一下环境吧。另外,库名可以不加后缀名,因为linux下可能是so后缀的,加了也没关系。

C:\Users\s>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "right", "credits" or "license" for more information.
>>> from ctypes import *
>>> dir(CDLL)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattr__',
'__getattribute__', '__getitem__', '__hash__', '__init__', '__mole__', '__new
__', '__rece__', '__rece_ex__', '__repr__', '__setattr__', '__sizeof__', '__
str__', '__subclasshook__', '__weakref__', '_func_flags_', '_func_restype_']
>>> dll=CDLL("msvcrt")
>>> dll
<CDLL 'msvcrt', handle 75b30000 at 2624570>
>>> dll=CDLL("msvcrt.dll")
>>> dll
<CDLL 'msvcrt.dll', handle 75b30000 at 2608ed0>

热点内容
界面像电脑一样的服务器 发布:2025-01-21 06:29:52 浏览:989
匿名祝福源码 发布:2025-01-21 06:29:13 浏览:348
云识别系统登陆密码是多少 发布:2025-01-21 06:23:39 浏览:368
stl源码剖析中文 发布:2025-01-21 06:14:17 浏览:344
我的世界手机版为什么连不上服务器 发布:2025-01-21 06:14:17 浏览:453
压缩机的性能参数 发布:2025-01-21 06:10:34 浏览:607
2014年预算法修订历时20年 发布:2025-01-21 06:05:46 浏览:191
linux切换到root用户 发布:2025-01-21 06:05:38 浏览:516
php存在文件 发布:2025-01-21 06:04:51 浏览:171
故乡的密码标题运用了什么手法 发布:2025-01-21 06:00:20 浏览:724