com.sun.jna.Memory.setPointer()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(2.2k)|赞(0)|评价(0)|浏览(179)

本文整理了Java中com.sun.jna.Memory.setPointer()方法的一些代码示例,展示了Memory.setPointer()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Memory.setPointer()方法的具体详情如下:
包路径:com.sun.jna.Memory
类名称:Memory
方法名:setPointer

Memory.setPointer介绍

[英]Indirect the native pointer to malloc space, a la Pointer.setPointer. But this method performs a bounds checks to ensure that the indirection does not cause memory outside the malloced space to be accessed.
[中]间接指向malloc空间的本机指针,即la[$1$]。但该方法执行边界检查,以确保间接寻址不会导致malloced空间之外的内存被访问。

代码示例

代码示例来源:origin: net.java.dev.jna/jna-platform

public void setRgpMsgCert(CERT_CONTEXT[] rgpMsgCerts) {
  this.rgpMsgCerts = rgpMsgCerts;
  if (rgpMsgCerts == null || rgpMsgCerts.length == 0) {
    rgpMsgCert = null;
    cMsgCert = 0;
  } else {
    cMsgCert = rgpMsgCerts.length;
    Memory mem = new Memory(Native.POINTER_SIZE * rgpMsgCerts.length);
    for (int i = 0; i < rgpMsgCerts.length; i++) {
      mem.setPointer(i * Native.POINTER_SIZE, rgpMsgCerts[i].getPointer());
    }
    rgpMsgCert = mem;
  }
}

代码示例来源:origin: net.java.dev.jna/jna-platform

public void setRgpMsgCrl(CRL_CONTEXT[] rgpMsgCrls) {
  this.rgpMsgCrls = rgpMsgCrls;
  if (rgpMsgCrls == null || rgpMsgCrls.length == 0) {
    rgpMsgCert = null;
    cMsgCert = 0;
  } else {
    cMsgCert = rgpMsgCrls.length;
    Memory mem = new Memory(Native.POINTER_SIZE * rgpMsgCrls.length);
    for (int i = 0; i < rgpMsgCrls.length; i++) {
      mem.setPointer(i * Native.POINTER_SIZE, rgpMsgCrls[i].getPointer());
    }
    rgpMsgCert = mem;
  }
}

代码示例来源:origin: stackoverflow.com

public void read() {
  Memory old = getPointer();
  Memory m = autoAllocate(size());
  // horribly inefficient, but it'll do
  m.write(0, old.getByteArray(0, size()), 0, size());
  useMemory(m);
  // Zero out the problematic callbacks
  for (field : problematic_fields) {
    m.setPointer(field_offset, null);
  }
  super.read();
  useMemory(old);
}

代码示例来源:origin: org.rococoa/rococoa-core

private Memory bufferForStructureByReference(Structure methodCallResult) {
  methodCallResult.write();
  Memory buffer = new Memory(Native.POINTER_SIZE);
  buffer.setPointer(0, methodCallResult.getPointer());
  return buffer;
}

代码示例来源:origin: com.protonail.leveldb-jna/leveldb-jna-core

startKeyMemory.write(0, ranges[i].getStartKey(), 0, startKeyLength);
startKeys.setPointer(i * Pointer.SIZE, startKeyMemory);
limitKeyMemory.write(0, ranges[i].getLimitKey(), 0, limitKeyLength);
limitKeys.setPointer(i * Pointer.SIZE, limitKeyMemory);

相关文章