Passar matriz de bytes do Unity C # para o plugin C ++
Estou tentando passar dados de textura bruta de Texture2D (matriz de bytes) para código C ++ não gerenciado. No código C #, o comprimento da matriz é de cerca de 1,5kk, no entanto, em C ++, 'sizeof' sempre retorna 8.
Declaração C # do método nativo:
[DllImport("LibName", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr ProcessData(byte[] data);
C ++:
extern "C" {
__declspec(dllexport) void ProcessData(uint8_t *data) {
//sizeof(data) is always 8
}
}
O que estou fazendo errado? Existe uma maneira de transmitir matriz sem alocação de memória adicional no código C ++?