delphi 调用c++ dll 问题出错
我用delphi要用一个板卡的dll中的函数,但是厂家给的例子是c++的,我想用delphi做,但是总是不能成功,说明书中的函数原型BOOL_stdcallAEC429C...
我用delphi要用一个板卡的dll中 的函数,但是厂家给的例子是c++的,我想用delphi做,但是总是不能成功,说明书中的
函数原型BOOL_stdcall AEC429C5_Close(HDEICE hAEC429C5 , BYTE Cardld)
参数说明:phAEC429C5:指针变量,用来存放板卡的句柄
CardId:板卡编号,取值范围为0 ~ 7
我的delphi代码为
implementation
type
h=^thandle;
function AEC429A_Open(pheac429A:THandle;cardid:Char):Boolean;cdecl;external'AEC429C5.dll';
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
handle:thandle;
begin
if AEC429A_Open(handle,'0') then
ShowMessage('ok')
end;
运行提示错误:无法定位程序输入点AEC429A_Open与动态链接库AEC429C5.dll;
首先谢谢两位的回答,上边是我打错了,是AEC429A_Open,我cdecl换为stdcall也试过了,但是还是有问题这个问题,麻烦各位高手看一下,谢谢了 展开
函数原型BOOL_stdcall AEC429C5_Close(HDEICE hAEC429C5 , BYTE Cardld)
参数说明:phAEC429C5:指针变量,用来存放板卡的句柄
CardId:板卡编号,取值范围为0 ~ 7
我的delphi代码为
implementation
type
h=^thandle;
function AEC429A_Open(pheac429A:THandle;cardid:Char):Boolean;cdecl;external'AEC429C5.dll';
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
handle:thandle;
begin
if AEC429A_Open(handle,'0') then
ShowMessage('ok')
end;
运行提示错误:无法定位程序输入点AEC429A_Open与动态链接库AEC429C5.dll;
首先谢谢两位的回答,上边是我打错了,是AEC429A_Open,我cdecl换为stdcall也试过了,但是还是有问题这个问题,麻烦各位高手看一下,谢谢了 展开
展开全部
把delphi函数中的cdecl换为stdcall试一试。问题的原因很简单,就是两边命名不一致导致的,实在不能解决的话,建议看一下网上相关的资料,已经足够丰富的了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数是AEC429C5_Close
用的是AEC429A_Open,如何能定为到dll入口.
用的是AEC429A_Open,如何能定为到dll入口.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你Depends看看DLL的函数明吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是类型的问题吧,你声明的板卡编号跟人家的Dll声明的板卡编号不一致,如何能调用它?另外别忘了把人家的Dll弄到程序目录那里去,隔得太远了,它们互相也会不认识的~~~~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询