C++中OUT关键字在JAVA中怎么对应

landmine 发布于 2012/06/15 11:47
阅读 1K+
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

JNI中遇到的问题请大家发言下。

C++中代码

typedef DWORD   RECEIVERID;

HCTERR HCTAPI HCTRegisterReceiver ( IN RECEIVERINFO *pReceiver, OUT RECEIVERID *pRID );

JAVA对应代码

static int pid;

public String HctRegisterRecevier(Peceiverinfo info)
{
   //执行内容略
    info.do
   return  str;
}

问题:

C++这个方法中out pid 相当于一个返回值,但这个pid在其它的方法中可以取到值。

而JAVA中没有out参数,这样的方法怎么对应那。

加载中
0
红薯
红薯

Java 和 C 之间是不需要直接对应的,使用 JNI 时你定义一个接口包含 native 的方法,然后生成对应的 C 语言的桩。

DWORD 可以对应 Java 的 int,但因为 Java 的 int 是传值的,你可以声明为 Integer,例如

public native String HCTRegisterReceiver(PeceiverInfo info, Integer pRID);

0
chunquedong
chunquedong
OUT什么时候变成C++的关键字了,求科普。
0
Injection
Injection

C++ OUT的定义为

#define OUT 

OUT只是为了阅读方便,编译都去掉了,只是一个宏定义,而不是关键字

0
landmine
landmine
立刻试验
0
醪糟儿蛋
醪糟儿蛋
楼主out了,C++木有out,out只宏定义,表示输出, 增加程序易读性, 可要可不要
0
易界灰
易界灰
只是表明这个参数是输出的
0
小熊猫大暴走
小熊猫大暴走
IN OUT 在 window api 中是为了表示参数是为了输入,还是为了获得输出的。
0
landmine
landmine

那JNA中怎么获取这个 out参数中的值那?

 

0
子达如何
子达如何
本来想进来学新东西的:)
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部