java - Java C/C++ 转换中的指针

标签 java c++ pointers

我正在尝试将库从 C++ 转换为 Java。我的指针有问题..

C++ 的代码是:

int DECL2 daveSetBit(daveConnection * dc,int area, int DB, int byteAdr, int bitAdr) {
    int a=1;
    return daveWriteBits(dc, area, DB, 8*byteAdr+bitAdr, 1, &a);
} 

daveWriteBits 声明是:

 daveWriteBits(daveConnection * dc,int area, int DB, int start, int len, void * buffer)

如何将其转换为 java?我不知道如何将指针 &a 转换成 java 语言..

public int SetBits(
        int area,
        int DBnum,
        int byteAdr,
        int bitAdr) {       
    int a=1;        
    return writeBits(area, DBnum, 8*byteAdr+bitAdr, 1, ??? )            
}

更新:

我忘了在 Java 中添加部分 WriteBits 函数..

public int writeBits(
        int area,
        int DBnum,
        int start,
        int len,
        byte[] buffer) {
        int errorState = 0;
        semaphore.enter();
        PDU p1 = new PDU(msgOut, PDUstartOut);

        p1.prepareWriteRequest();
        p1.addBitVarToWriteRequest(area, DBnum, start, len, buffer);

        errorState = exchange(p1);

        if (errorState == 0) {
            PDU p2 = new PDU(msgIn, PDUstartIn);
            p2.setupReceivedPDU();

            if (p2.mem[p2.param + 0] == PDU.FUNC_WRITE) {
                if (p2.mem[p2.data + 0] == (byte) 0xFF) {
                    if ((Nodave.Debug & Nodave.DEBUG_CONN) != 0)
                        System.out.println("writeBytes: success");
                    semaphore.leave();
                    return 0;
                }
            } else {
                errorState |= 4096;
            }
        }
        semaphore.leave();
        return errorState;
    }

最佳答案

由于变量被忽略,我将删除它。

但是如果它没有被忽略你可以起诉

int[] a = { 1 };
writeBits(area, DBnum, 8*byteAdr+bitAdr, 1, a )  ;
// do something with a[0];

关于java - Java C/C++ 转换中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885691/

相关文章:

java - 分析和检查由 Java 加载的 DLL 中的内存分配

c++ - 如何在模板化对象的 vector 上获取迭代器?

c - NULL 数据指针与 NULL 函数指针相同吗?

java - 将 JPanel 背景设置为透明,setOpaque() 不允许我绘画

java - 无法添加窗口Android对话框

java - 如何始终保持随机变量?

c++ - 使用双指针创建树

java - 谷歌 protobuf for Java 的“可选重复”

c++ - 如何高效地将数据写入数千个不同的文件

objective-c - Objective-C 中的指针和数据分配