搜索
查看: 5507|回复: 4

关于DLL函数参数声明

[复制链接]

75

主题

849

帖子

5009

积分

六级会员

The only one

Rank: 9Rank: 9Rank: 9

积分
5009
发表于 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)" )





小时候,幸福是一件东西,拥有就是幸福; 长大了,幸福是一个目标,达到就是幸福; 成熟后,发现幸福原来是一种心态,领悟就是幸福.
回复

使用道具 举报

30

主题

695

帖子

4178

积分

超级版主

Rank: 8Rank: 8

积分
4178
发表于 2012-6-13 19:20:01 | 显示全部楼层

最后一个参数是指针,在aardio里应当声明为引用类型,一般你看到C++的类型后面加了星号,那么你在aardio里就在类型后面加上&符号声明为引用类型,如下:

最后一个参数是指针,在aardio里应当声明为引用类型,一般你看到C++的类型后面加了星号,那么你在aardio里就在类型后面加上&符号声明为引用类型,如下:

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

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

使用道具 举报

75

主题

849

帖子

5009

积分

六级会员

The only one

Rank: 9Rank: 9Rank: 9

积分
5009
 楼主| 发表于 2012-6-13 20:51:16 来自手机 | 显示全部楼层

[quote][color=#999999]quicker 发表于 2012-6-13 19:20[/color] [color=#999999]最后一个参数是

quicker 发表于 2012-6-13 19:20 最后一个参数是指针,在aardio里应当声明为引用类型,一般你看到C++的类型后面加了星号,那么你在aardio里就在 ...

多谢指点!
回复

使用道具 举报

0

主题

55

帖子

362

积分

二级会员

Rank: 3Rank: 3

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

赞一个

赞一个  
回复

使用道具 举报

39

主题

174

帖子

1037

积分

荣誉会员

htmlayout.cn 我的学习笔记

Rank: 8Rank: 8

积分
1037
发表于 2016-11-20 23:12:36 | 显示全部楼层
受教
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2018-12-15 14:22 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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