C++中OUT关键字在JAVA中怎么对应
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参数,这样的方法怎么对应那。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
本来想进来学新东西的:)
那JNA中怎么获取这个 out参数中的值那?
IN OUT 在 window api 中是为了表示参数是为了输入,还是为了获得输出的。
只是表明这个参数是输出的
楼主out了,C++木有out,out只宏定义,表示输出, 增加程序易读性, 可要可不要
立刻试验
C++ OUT的定义为
OUT只是为了阅读方便,编译都去掉了,只是一个宏定义,而不是关键字
OUT什么时候变成C++的关键字了,求科普。
Java 和 C 之间是不需要直接对应的,使用 JNI 时你定义一个接口包含 native 的方法,然后生成对应的 C 语言的桩。
DWORD 可以对应 Java 的 int,但因为 Java 的 int 是传值的,你可以声明为 Integer,例如
public native String HCTRegisterReceiver(PeceiverInfo info, Integer pRID);