python获取dll文件中的函数失败

yu332045275 2012-07-17 01:48:12
各位前辈高手们,我遇到一个非常纠结的问题,特来向各位请教。
我使用python加载了一个C编译之后的dll文件,使用的方法如下:
FFT_INTERNAL_LIB_PATH = os.path.join(os.path.dirname(__file__), 'dll_lib/CWrappersLib.dll').replace('\\','/')
inter_object = None
try:
inter_object = WinDLL(FFT_INTERNAL_LIB_PATH)
except Exception, e:
print "Load DLL file failed, error is ", e

在C的头文件提供的接口中,有下面这个方法:
/*
* configure filter with filtering params
*/
CWRAPPERS_EXPORT fft_error_t FFTAPI fft_Configure_Filter(fft_FilterHandle pHandle, fft_traffic_filtering_params_t params);


我加载了这个DLL文件,并尝试使用fft_configure_filter = inter_object.fft_Configure_Filter 来获取到这个方法。
但是在我调试时,我的到一个错误 “function 'fft_Configure_filter' not found”.


我使用了depends.exe查看了这个dll文件,如图:


其中是存在fft_Configure_Filter这个方法的,同时我使用DLL中同时存在的方法fft_Create_Filter作为测试,用inter_object.fft_Create_Filter尝试获取这个方法,能够成功获取:

fft_Create_Filter在C的头文件中定义如下:
/*
* create filter
*/
CWRAPPERS_EXPORT fft_FilterHandle FFTAPI fft_Create_Filter();


我很奇怪为什么同样的由加载了DLL文件的inter_object对象,能获取到除了fft_Configure_Filter以外的全部方法,但是fft_Configure_Filter这个方法却会提示说未找到。

不知道有没有有过相同经历的朋友,能否提供我一下解决方案。
...全文
274 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]…但是在我调试时,我的到一个错误 “function 'fft_Configure_filter' not found”…
[/Quote]
fft_Configure_filter大小写错误?
yu332045275 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你这2个函数的导出方式略有差异,是不是这个原因啊?
CWRAPPERS_EXPORT fft_error_t FFTAPI fft_Configure_Filter(...);
CWRAPPERS_EXPORT fft_FilterHandle FFTAPI fft_Create_Filter();
[/Quote]
你是说这两个函数的返回值类型么,但问题是,还有其他的函数也是fft_error_t的返回值类型,个人觉得应该不是这个问题。
yu332045275 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用楼主 的回复:…但是在我调试时,我的到一个错误 “function 'fft_Configure_filter' not found”…

fft_Configure_filter大小写错误?
[/Quote]
是我不小心在这写错了。是大写的F
libralibra 2012-07-17
  • 打赏
  • 举报
回复
你这2个函数的导出方式略有差异,是不是这个原因啊?
CWRAPPERS_EXPORT fft_error_t FFTAPI fft_Configure_Filter(...);
CWRAPPERS_EXPORT fft_FilterHandle FFTAPI fft_Create_Filter();

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧