obtenir pointeur de tableau d'octets dans la jna

J'ai suivantes de code en c# et ont besoin d'une fonctionnalité similaire en java à l'aide de la "JNA":

IntPtr pImage = SerializeByteArrayToIntPtr(imageData);

public static IntPtr SerializeByteArrayToIntPtr(byte[] arr)
        {
            IntPtr ptr = IntPtr.Zero;
            if (arr != null && arr.Length > 0)
            {
                ptr = Marshal.AllocHGlobal(arr.Length);
                Marshal.Copy(arr, 0, ptr, arr.Length);
            }
            return ptr;
        }
  • l'utilisation du Système.arrayCopy en java
  • si vous voulez que le transfert de byte[] en int[], ByteBuffer.asIntBuffer() va probablement faire ce dont vous avez besoin.
  • Je veux pointeur de la ref du byte[]
  • Est C# byte un entier non signé de 8 bits entier? Il est équivalent à C 8-bits unsigned char. Mais, Java byte est signé 8 bits en complément à deux entier. Alors, il ne correspond pas aux. Probablement besoin de c & 0xFF. Pour la préservation de la référence C# de type entier en paramètre, utilisez IntByReference ou ByteByReference. Plus utile la poste, à stackoverflow.com/questions/333151/...
InformationsquelleAutor user206646 | 2011-03-09