yeqing880 发表于 2010-11-21 13:26:41

一个dll的调用说明。。请教大大

本帖最后由 yeqing880 于 2010-11-21 13:32 编辑

SDK说明是


导出函数说明
(1) bool         WAPA_DVR_Init();

Description: 相关参数的初始化
Return:   成功返回true,否则返回false


(2) LOGININFOWAPA_DVR_Login(   char*serverIp,
int    port,
char*user,
char*psw
);

Description:登录服务器
Return:    函数调用成功,返回值中包含服务器相关信息,调用失败,返回值
中各成员值为0
Parameter Explain:
serverIp//服务器IP地址
port   //指定连接的服务器端口号
user   //用户名
pwd   //登录密码

请问我该怎么调用这个函数 返回值是什么类型呢?

$dll = DllOpen("DvrDll.dll")

$d = DllCall ( $dll, "int", "WAPA_DVR_Init")

这个@error = 0 算是调用成功了。但返回值是257,和说明文档不同。说明文档上 成功返回true,否则返回false 是返回值类型不对吗

$d2 = DllCall ( $dll, "long", "WAPA_DVR_Login","char*","192.168.1.1","int","1000","char*","admin","char*","123")

这样调用对吗我对这方面一点经验都没有。。麻烦大大帮帮我

pusofalse 发表于 2010-11-21 18:07:05

char只能用于DllStruct结构,在DllCall中,用str来表示一个Ansi字符串。

ceoguang 发表于 2010-11-21 18:42:36

本帖最后由 ceoguang 于 2010-11-21 23:59 编辑

Local $str = "char;int;char;char"
$LOGININFO = DllStructCreate($str)
DllStructSetData($LOGININFO,"serverIp","192.168.1.1")
DllStructSetData($LOGININFO,"port","1000")
DllStructSetData($LOGININFO,"user","admin")
DllStructSetData($LOGININFO,"pwd","123")
$d = DllCall($dll, "bool", "WAPA_DVR_Init")
$Ret = DllCall($dll, "long", "WAPA_DVR_Login", $LOGININFO)

yeqing880 发表于 2010-11-21 21:03:28

本帖最后由 yeqing880 于 2010-11-21 21:14 编辑

回复 3# ceoguang

帅哥。。用了您的代码。。但第一个函数返回值是257 第二个为空 error = 4(参数数量错误)

不知道是什么问题

要不我上传dll麻烦您帮我看下吧

ceoguang 发表于 2010-11-21 23:12:09

LOGININFOWAPA_DVR_Login(   char*serverIp,
int    port,
char*user,
char*psw
);
确认下是psw还是pwd

yeqing880 发表于 2010-11-21 23:22:02

回复 5# ceoguang

说明文档如下:   



(2) LOGININFOWAPA_DVR_Login(   char*serverIp,
int    port,
char*user,
char*psw
);

Description:登录服务器
Return:    函数调用成功,返回值中包含服务器相关信息,调用失败,返回值
中各成员值为0
Parameter Explain:
serverIp//服务器IP地址
port   //指定连接的服务器端口号
user   //用户名
pwd   //登录密码

我也看不明白到底是psw 还是pwd

但我不管是用psw 还是pwd。都是@error = 4

ceoguang 发表于 2010-11-22 00:09:13

本帖最后由 ceoguang 于 2010-11-22 00:15 编辑

$serverIp =DllStructCreate('char')
DllStructSetData($serverIp,1,"192.168.1.1")
$user =DllStructCreate('char')
DllStructSetData($user,1,"admin")
$pwd =DllStructCreate('char')
DllStructSetData($pwd,1,"123")

$dll = DllOpen("DvrDll.dll")

$d = DllCall($dll, "bool", "WAPA_DVR_Init")
$Ret = DllCall($dll, "long", "WAPA_DVR_Login", "str",$serverIp,"int","1000","str",$user,"str",$pwd)搞不定
等高手吧

yeqing880 发表于 2010-11-22 00:17:11

唉。。直接报错了。。。

yeqing880 发表于 2010-11-22 12:31:07

唉~~~~~~楼主。。我来帮你顶下

yeqing880 发表于 2010-11-25 17:51:21

楼主。。我又来看你了。。不过这次来和上次一样。。拿钱、顶贴、走人
页: [1]
查看完整版本: 一个dll的调用说明。。请教大大