私はCコードから再びByteArrayのCコードとリターンにファイルから抽出したByteArrayを送信しようとしています。..アドビ錬金術バイト配列の読み取りに問題
私はCからの戻り値の内容を印刷していますテキストビューではcontents.textですが、わかることができるのはバイト配列オブジェクト "OggS"です。私はバイト配列の内容を見ることができません。誰かが私が間違っていると言うことができますか?..私はCコードとASコードを投稿しました。
AS Code:
private function copyByteArray(content:String):void{
try{
byteData = new ByteArray();
//byteData.writeUTFBytes(contents);
var dec:Base64Decoder = new Base64Decoder();
dec.decode(content);
byteData = dec.toByteArray();
//Alert.show("byte Array " + byteData +" :: " +contents.length);
var file:File = File.desktopDirectory.resolvePath("Files/test.spx");
stream = new FileStream();
stream.open(file, FileMode.WRITE);
/* var loader:CLibInit = new CLibInit();
var lib:Object = loader.init();
loader.supplyFile("testFile.txt", byteData);
contents.text = lib.sqre(5);*/
var loader:CLibInit = new CLibInit();
var lib:Object = loader.init();
// var result:String = lib.doMagic(byteData);
var byteArr:ByteArray;
var byteStr:String;
//byteArr.writeBytes(byteData, 0 , byteData.length);
loader.supplyFile("test1.txt" , byteData);
byteStr = lib.readFile("test1.txt");
contents.text = byteStr;
//stream.writeBytes();
stream.close();
}
catch (ex: ErrorEvent){
Alert.show("error");
}
}
Cコード:
static AS3_Val readFile(void* self, AS3_Val args)
{
char * fileName;
FILE * file;
long fileSize;
char * buffer;
AS3_ArrayValue(args, "StrType", &fileName);
file = fopen(fileName,"rb");
//Get file size
fseek (file, 0, SEEK_END);
fileSize = ftell(file);
rewind(file);
//Allocate buffer
buffer = (char*) malloc(sizeof(char)*fileSize);
//Read file into buffer
fread(buffer, 1, fileSize, file);
//close file and free allocated buffer
fclose (file);
free (buffer);
return AS3_String((char*)buffer);
}