找回密码
 加入
搜索
查看: 2380|回复: 5

[系统综合] 请教一个关于DLLCALL的问题

  [复制链接]
发表于 2011-9-25 20:50:57 | 显示全部楼层 |阅读模式
本帖最后由 yeqing880 于 2011-9-25 20:52 编辑

我有一个DLL文件  

函数说明为:

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

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

目前已知这个DLL的返回值是一个 struct

请问返回值的类型该怎么填?
$dll=DllOpen ( "test.dll" )
$aResult = DllCall($dll, ???,"Login","str","192.168.1.1","int","9000","str","admin","str","admin")
???部分该填写"ptr"吗?

以下是数据结构 :

typedef struct _LOGININFO
{
int            nIndex;
int            nChannel;        
char    szLocation[32][36];
char    ip[64];        
}LOGININFO, *PLOGININFO;
发表于 2011-9-26 09:09:05 | 显示全部楼层
本帖最后由 zsken 于 2011-9-27 18:00 编辑

返回类型可以是ptr

$dll=DllOpen ( "test.dll" )
$aResult = DllCall($dll, "BOOL","WAPA_DVR_Init")
$aResult = DllCall($dll, "ptr","WAPA_DVR_Login","str","192.168.1.1","int","9000","str","admin","str","admin")
$tLoginInfo = DllStructCreate("align 1;int nIndex;int nChannel;CHAR  szLocation["&32*36&"];CHAR ip[64]", Ptr($aResult[0]))
 楼主| 发表于 2011-9-26 16:54:58 | 显示全部楼层
本帖最后由 yeqing880 于 2011-9-26 18:38 编辑

好像不行。。。。

我上传DLL 和说明文档 麻烦帮我看下好吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-9-27 08:18:52 | 显示全部楼层
本帖最后由 zsken 于 2011-9-27 08:23 编辑

文档我看了,首先在调用之前要先初始化一下WAPA_DVR_Init,另外调用WAPA_DVR_Login可能需要安装客户端软件,我这里没法调试。如果有客户端软件或运行环境之类的也贴上来,这样方便解决问题。



2楼回复我已经修改过了,请再试一下。
 楼主| 发表于 2011-9-27 11:22:33 | 显示全部楼层
客户端就包括这个dll
 楼主| 发表于 2011-9-27 11:23:56 | 显示全部楼层
我加不了你
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 00:25 , Processed in 0.084522 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表