Python学习笔记之ctypes之Dll调用问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xsophiax/article/details/100011797

1. 调用DLL

有两种方式,根据生成dll的规约(stdcall、cdecl).

stdcall调用约定

dllpath = r'stdcall.dll' # stdcall.dll 测试用
Objdll = ctypes.windll.LoadLibrary(dllpath) 

cdecl调用约定

dllpath = r'cdecl.dll' # cdecl.dll 测试用
Objdll = ctypes.cdll.LoadLibrary(dllpath)

2.[Error 193]问题

WindowsError: [Error 193] %1 is not a valid Win32 application in Python

出现此问题可以看一下是否如下是否正确;

  1. Python为32位的,而待调用的dll为64位的,
  2. Python为64位,而dll为32位;总之就是这种存在不匹配问题;

3.[Error 126]问题

OSError: [WinError 126] The specified module could not be found

1. 可能是dll编译输出的函数存在异常,这个可以使用dumpbin /exports,查看导出信息,是否符合预期;

2. 另外一个请检查依赖DLL是否能在当前目录下找到。

猜你喜欢

转载自blog.csdn.net/xsophiax/article/details/100011797