aardio 官方社区

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

帖子
查看: 13611|回复: 4

关于DLL函数参数声明

[复制链接]

75

主题

767

回帖

5045

积分

六级会员

The only one

积分
5045
发表于 2012-6-13 16:34:34 | 显示全部楼层 |阅读模式
...

#ifndef   PIPTR

#if   (defined(_WINDOWS)   ||   defined(DOS))   &&   !defined(WIN32)

#define   PIPTR   _far

#else

#define   PIPTR

#endif

#endif


#if   defined(_WINDOWS)   ||   defined(WIN32)

#include   <windows.h>

#define   PIINT32   int32   WINAPI

#define   PIVOID     void   WINAPI

#define   PIWIN       WINAPI

#define   PIBOOL     pibool   WINAPI

#elif   defined   (   __alpha   )

#define   PIINT32   int

#define   PIVOID   void

#define   PIWIN   

#define   PIBOOL   pibool

#else

#define   PIINT32   int32

#define   PIVOID     void

#define   PIWIN

#define   PIBOOL   pibool

#endif

...

PIINT32   piut_connect(   const   char   PIPTR   *procname   );

PIINT32   piut_disconnect(   void   );

PIINT32   piut_login(   const   char   PIPTR   *,   const   char   PIPTR   *,   int32   PIPTR   *   );

PIINT32   pipt_findpoint(   char   PIPTR   *tagname,   int32   PIPTR   *pt   );

...

上面是c++源代码的一部分,用于调用piapi32.dll
函数原型: int32 piut_login (char PIPTR * username, char PIPTR * passwrd, int32 PIPTR * valid);




我这样声明,老是崩溃,piut_login 第三个参数如何声明??
var piapi32 = raw.loadDll("piapi32.dll");
var piut_login=piapi32.api("piut_login","INT(string username,string passwrd,int valid)" )





27

主题

646

回帖

4138

积分

超级版主

积分
4138
发表于 2012-6-13 19:20:01 | 显示全部楼层
最后一个参数是指针,在aardio里应当声明为引用类型,一般你看到C++的类型后面加了星号,那么你在aardio里就在类型后面加上&符号声明为引用类型,如下:

var piut_login=piapi32.api("piut_login","INT(string username,string passwrd,int &valid)" )

然后,piut_login() 的返回值有两个,一个是函数本身的返回值,另外一个就是引用参数valid

75

主题

767

回帖

5045

积分

六级会员

The only one

积分
5045
 楼主| 发表于 2012-6-13 20:51:16 来自手机 | 显示全部楼层
quicker 发表于 2012-6-13 19:20 最后一个参数是指针,在aardio里应当声明为引用类型,一般你看到C++的类型后面加了星号,那么你在aardio里就在 ...

多谢指点!

0

主题

54

回帖

362

积分

二级会员

积分
362
QQ
发表于 2014-4-29 07:16:53 | 显示全部楼层
赞一个  

38

主题

129

回帖

1045

积分

荣誉会员

积分
1045
发表于 2016-11-20 23:12:36 | 显示全部楼层
受教
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-6-14 01:19 , Processed in 0.086889 second(s), 24 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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