关于调用VC++的DLL

lgwww 2010-12-07 03:48:10
我要调用VC++写的一个DLL的函数,对应的Delphi应该怎样写
DWORD PASCAL ReadCard(HANDLE hCom,BYTE DevNo,BYTE Addr,LPSTR pInfo,LPDWORD pCardSN),最好我要取得pInfo和pCardSN的返回值,各位高手帮帮忙啊
...全文
82 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgwww 2010-12-08
  • 打赏
  • 举报
回复
已经得了谢谢各位
lgwww 2010-12-08
  • 打赏
  • 举报
回复
用vb测试
Public Declare Function ReadCard Lib "JSComm" (ByVal hdc As Long,ByVal DevNo As Long,ByVal Addr As Long,ByVal Info As String,ByRef CardSN As Long) As Long
测试有可以,为什么Delphi不得呢
myfirenze 2010-12-07
  • 打赏
  • 举报
回复

// DWORD PASCAL ReadCard(HANDLE hCom,BYTE DevNo,BYTE Addr,LPSTR pInfo,LPDWORD pCardSN);
type
TReadCard=function(hCom:THandle;DevNo,Addr:Byte;pInfo:PChar;pCardSN:PLongWord):LongWord; stdcall;

var
LibHandle:THandle;
FunReadCard:TReadCard;
lResult:LongWord;
Info:string;
CardSN:LongWord;
begin
LibHandle:=LoadLibrary('Dll文件完整名');
if LibHandle<>0 then
begin
FunReadCard:=TReadCard(GetProcAddress(LibHandle,'ReadCard'));
if Assigned(FunReadCard) then
lResult:=FunReadCard(0,0,0,PChar(Info),@CardSN);
//Process the Result and Paraments
FreeLibrary(LibHandle);
end;
end;
lgwww 2010-12-07
  • 打赏
  • 举报
回复
调用出错啊
bdmh 2010-12-07
  • 打赏
  • 举报
回复
ReadCard(hCom:THandle,DevNo:BYTE,Addr:BYTE,pInfo:PChar,pCardSN:PDWORD)
lgwww 2010-12-07
  • 打赏
  • 举报
回复
可是返回的值不对啊,在delphi里应该怎样调用啊
bdmh 2010-12-07
  • 打赏
  • 举报
回复
那就是被改写了,调用完dll,直接访问你传递的那两个参数就行了
lgwww 2010-12-07
  • 打赏
  • 举报
回复
我见dll说明pInfo和pCardSN是有返回值的啊
bdmh 2010-12-07
  • 打赏
  • 举报
回复
那连个是传进去的值,你还要获得什么返回值
bdmh 2010-12-07
  • 打赏
  • 举报
回复
那连个是传进去的值,你还要获得什么返回值
lgwww 2010-12-07
  • 打赏
  • 举报
回复
没人关注么

5,386

社区成员

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

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