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

x33g5p2x  于2022-01-19 转载在 其他  
字(3.9k)|赞(0)|评价(0)|浏览(352)

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

Function.invokePointer介绍

[英]Convenience method for #invoke(Class,Object[]).
[中]方便的#invoke方法(类,对象[])。

代码示例

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

  1. /**
  2. * Call the native function being represented by this object
  3. *
  4. * @param callFlags calling convention to be used
  5. * @param args
  6. * Arguments to pass to the native function
  7. * @param wide whether the native string uses <code>wchar_t</code>;
  8. * if false, <code>char</code> is assumed
  9. * @return The value returned by the target native function, as a String
  10. */
  11. private String invokeString(int callFlags, Object[] args, boolean wide) {
  12. Pointer ptr = invokePointer(callFlags, args);
  13. String s = null;
  14. if (ptr != null) {
  15. if (wide) {
  16. s = ptr.getWideString(0);
  17. }
  18. else {
  19. s = ptr.getString(0, encoding);
  20. }
  21. }
  22. return s;
  23. }

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

  1. return invokePointer(callFlags, args);
  2. } else if (Structure.class.isAssignableFrom(returnType)) {
  3. if (Structure.ByValue.class.isAssignableFrom(returnType)) {
  4. result = s;
  5. } else {
  6. result = invokePointer(callFlags, args);
  7. if (result != null) {
  8. Structure s = Structure.newInstance((Class<? extends Structure>)returnType, (Pointer)result);
  9. result = invokePointer(callFlags, args);
  10. if (result != null) {
  11. result = CallbackReference.getCallback(returnType, (Pointer)result);
  12. Pointer p = invokePointer(callFlags, args);
  13. if (p != null) {
  14. result = p.getStringArray(0, encoding);
  15. Pointer p = invokePointer(callFlags, args);
  16. if (p != null) {
  17. String[] arr = p.getWideStringArray(0);
  18. Pointer p = invokePointer(callFlags, args);
  19. if (p != null) {
  20. result = p.getPointerArray(0);

代码示例来源:origin: org.netbeans.api/org-jruby

  1. public final IRubyObject invoke(Ruby runtime, Function function, Object[] args) {
  2. return new JNAMemoryPointer(runtime, function.invokePointer(args));
  3. }
  4. public static final FunctionInvoker INSTANCE = new PointerInvoker();

代码示例来源:origin: org.elasticsearch/jna

  1. /**
  2. * Call the native function being represented by this object
  3. *
  4. * @param callFlags calling convention to be used
  5. * @param args
  6. * Arguments to pass to the native function
  7. * @param wide whether the native string uses <code>wchar_t</code>;
  8. * if false, <code>char</code> is assumed
  9. * @return The value returned by the target native function, as a String
  10. */
  11. private String invokeString(int callFlags, Object[] args, boolean wide) {
  12. Pointer ptr = invokePointer(callFlags, args);
  13. String s = null;
  14. if (ptr != null) {
  15. if (wide) {
  16. s = ptr.getWideString(0);
  17. }
  18. else {
  19. s = ptr.getString(0, encoding);
  20. }
  21. }
  22. return s;
  23. }

代码示例来源:origin: org.elasticsearch/jna

  1. return invokePointer(callFlags, args);
  2. } else if (Structure.class.isAssignableFrom(returnType)) {
  3. if (Structure.ByValue.class.isAssignableFrom(returnType)) {
  4. result = s;
  5. } else {
  6. result = invokePointer(callFlags, args);
  7. if (result != null) {
  8. Structure s = Structure.newInstance(returnType, (Pointer)result);
  9. result = invokePointer(callFlags, args);
  10. if (result != null) {
  11. result = CallbackReference.getCallback(returnType, (Pointer)result);
  12. Pointer p = invokePointer(callFlags, args);
  13. if (p != null) {
  14. result = p.getStringArray(0, encoding);
  15. Pointer p = invokePointer(callFlags, args);
  16. if (p != null) {
  17. String[] arr = p.getWideStringArray(0);
  18. Pointer p = invokePointer(callFlags, args);
  19. if (p != null) {
  20. result = p.getPointerArray(0);

代码示例来源:origin: com.sun.jna/jna

  1. result = invokePointer(callingConvention, args);
  2. if (result != null) {
  3. Structure s = Structure.newInstance(returnType);
  4. result = invokePointer(callingConvention, args);
  5. if (result != null) {
  6. result = CallbackReference.getCallback(returnType, (Pointer)result);

代码示例来源:origin: org.netbeans.api/org-jruby

  1. public final IRubyObject invoke(Ruby runtime, Function function, Object[] args) {
  2. Pointer address = function.invokePointer(args);
  3. if (address == null) {
  4. return runtime.getNil();
  5. }
  6. int len = (int) address.indexOf(0, (byte) 0);
  7. if (len == 0) {
  8. return RubyString.newEmptyString(runtime);
  9. }
  10. ByteList bl = new ByteList(len);
  11. bl.length(len);
  12. address.read(0, bl.unsafeBytes(), bl.begin(), len);
  13. return RubyString.newString(runtime, bl);
  14. }
  15. public static final FunctionInvoker INSTANCE = new StringInvoker();

相关文章