Pergunta

Eu estou usando a biblioteca Alquimia do Flex para gerar a partir de arquivos C do SWC. I têm uma matriz de bytes (unsigned char buffer[size]) no c-camada que gostaria de retornar para a camada ActionScript como um ByteArray. Eu tenho para percorrer a matriz e chamar explicitamente AS3_Set em cada elemento ou há apenas uma maneira de retornar a matriz C inteiro de uma vez?

Foi útil?

Solução

Outras dicas

Em C, quando retornar da função chamada pelo Flash, devolver o ponteiro para o array C, como este:

int * myArray = malloc(100);
//populate array...
return AS3_Array("IntType", (int)myArray);

Então, em inflamação:

import cmodule.<c module name>.MemUser;
...
memory = new MemUser();
for (var i:int = 0; i<4;i++) { //getting a 4 uints array
    trace(memory._mru16(data[0] + i*4)); //data is the return value from C
}

Ou use estas funções para ler o ints / carros alegóricos / char do c-array (você não pode apenas usar ByteArray.readInt (), os números em c são representados de maneira diferente)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top