QT之解决dll调用时函数重命名(函数名被编译器改变的问题)

这几天做一个项目,需要用到一个X宝上买的读卡器,在调用店家给的dll文件时(显式调用),总是发现没反应,后来借用depends打开dll查看,看下图QT之解决dll调用时函数重命名(函数名被编译器改变的问题)_第1张图片,发现dll里面的函数都被编译器加上了前缀和后缀,上网查了一下,是什么重载之类的说法,我就在想怎么把前缀给去掉,可是找了好久都没找到什么方法,也去贴吧和相关的QQ群去询问,未果!昨天下班后我就自己在加班,后来发现使用显示调用,直接resolve改变后的函数名酒可以调用了,下图QT之解决dll调用时函数重命名(函数名被编译器改变的问题)_第2张图片

QT之解决dll调用时函数重命名(函数名被编译器改变的问题)_第3张图片

本来的函数名是CloseReader,改变后的是?CloseReader@@YAHXZ,直接resolve?CloseReader@@YAHXZ就能用了,我只用了显示调用这种方法,其他的方法大家有时间可以去试试,我还要做别的,暂时没时间,大家有问题,参考我的看能不能成功,有问题留言,一起进步

你可能感兴趣的:(QT,QT,调用dll,函数重命名,函数名被改变,__imp_)