我将一组76800个布尔值(可能是整数或无符号字符*)传递给Actionscript(AIR)。到目前为止,我提出的最佳解决方案是将我的C ++应用程序作为NativeProcess启动,这使我的AIR应用程序可以访问stdout。
我的解决方案有点工作,但我觉得这是一个可怕的黑客攻击,我不太了解ostream,知道如何传递信息:
// Variables
stringstream ss;
int arrayLength = 76800;
// Put data into stringstream
for (int i = 0; i < arrayLength; ++i){
ss << data[i];
}
// Convert stringstream to stream
string message;
ss >> message;
// Send Data
cout << message;
有没有办法在一个大块中输出这些值而不将它们变成字符串?
编辑:在AS3中,我理想地将此传入数据转换为ByteArray,以便我可以将其用作BitmapData。
性能是问题,在这里 - 这实际上是一个我试图传递给as3的2位图像,所以这一切都需要每秒发生15-30次。
答案 0 :(得分:0)
作为第一遍,为什么还要将它们放入流中,只是将其转换为字符串并将其写入流?只需一次通过:
int arrayLength = 76800;
for (int i = 0; i < arrayLength; ++i) {
cout << data[i];
}
答案 1 :(得分:0)
使用boolalpha
标志,如下所示:
for (int i = 0; i < arrayLength; ++i) {
cout << boolalpha << data[i] << endl;
}