delphi调用c动态库

ddydw 2008-10-08 04:17:18
C语言编写的动态链接库文件DDsfMac.dll
其中有一个过程:void GenMacCEB(char* bMacKey, const char* buffers, int iBuffLen, char* Mac);

要在delphi中调用这个过程。
在implementation上面声明如下:
procedure GenMacCEB(bMacKey: PChar; const buffers: PChar; iBuffLen: Integer; Mac: PChar); stdcall; external 'DDsfMac.dll';
提示:无法定位程序输入点GenMacCEB于动态链接库DDsfMac.dll上
请问如何解决?

谢谢!
...全文
60 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2008-10-08
  • 打赏
  • 举报
回复
dumpbin /exports DDsfMac.dll
或者
tdump -ee DDsfMac.dll
查看一下该DLL的导出信息,看看函数的名称具体是什么,至于调用方式,很有可能是cdecl
僵哥 2008-10-08
  • 打赏
  • 举报
回复
dumpbin /exports DDsfMac.dll
或者
dump -ee DDsfMac.dll
查看一下该DLL的导出信息,看看函数的名称具体是什么,至于调用方式,很有可能是cdecl
yuqianyi1974 2008-10-08
  • 打赏
  • 举报
回复
这样试试
procedure GenMacCEB(bMacKey: PChar; const buffers: PChar; iBuffLen: Integer; Mac: PChar); cdecl; external
五维思考 2008-10-08
  • 打赏
  • 举报
回复
你的C语言函数没有明确调用模式,应该是cdecl方式的,而你声明的是stdcall
yuqianyi1974 2008-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 etomahawk 的回复:]
确保DDsfMac.dll中导出了“GenMacCEB”。
确保DDsfMac.dll路径正确。
[/Quote]
另外void GenMacCEB(char* bMacKey, const char* buffers, int iBuffLen, char* Mac); 的调用规范是stdcall吗?
etomahawk 2008-10-08
  • 打赏
  • 举报
回复
确保DDsfMac.dll中导出了“GenMacCEB”。
确保DDsfMac.dll路径正确。

如果不行,动态调用看看。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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