内容
为了参加阿里云天池的一个比赛,官方提供了一个python调用的接口函数,用于读取kfb文件格式的图像,所以就需要将这个库函数引入项目工程中,但是我的一直报错说是DLL Load failed。我也奇了怪了,在同学电脑上重复我自己的操作,他们可以,我的就是不行,后面卸载python,pycharm之后重新安装,还是不行。然后就去百度pyc,pyd,dll这些文件格式之间的区别,具体怎么说还是没懂,好像是pyd,pyc,dll都可以表示被引用成库函数,我之前报错时是某一个dll没有加载成功。所以我就想把这个dll文件直接拷到和py文件同目录下,然后显示调用,百度之后,大概代码如下:结果成功了,反正没太懂这其中的原理,算是感动了上天,瞎几把试成功了
import ctypes,os
os.environ['path'] += ';F:\\tianchi\kfbreader\kfbreader\Kfbreader-win10-python37\Kfbreader-win10-python37' #添加dll依赖库目录到系统环境
libc = ctypes.cdll.LoadLibrary('ImageOperationLib.dll')
# win32api.FreeLibrary(libc._handle) #发现程序运行结束时无法正常退出dll,需要显式释放dll