gpt4 book ai didi

c++ - 通过 C++ 为 AIR native 扩展生成可变长度的字节数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:49 25 4
gpt4 key购买 nike

对于以下 C++ 和 ActionScript3 代码,我的 AIR 应用程序在调用 getBytes2 方法时崩溃。为什么会这样?解决方案建议将不胜感激。

C++代码:

FREObject getBytes2(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
FREObject result;
FREByteArray actualBytes;

FREAcquireByteArray(argv[0], &actualBytes);
uint8_t* nativeString = (uint8_t*) "Hello World from C++";
memcpy(actualBytes.bytes, nativeString, sizeof(nativeString));

FREReleaseByteArray(&actualBytes);

FRENewObjectFromBool(1, &result);
return result;
}

ActionScript3 代码:

    public function getBytes2():ByteArray {
var ba:ByteArray = new ByteArray();
this._ExtensionContext.call("getBytes2", ba);
ba.position = 0;
return ba;
}

最佳答案

参见 FREImageProcessor.cpp有关动态设置长度的工作示例。基本上,您可以像在 ActionScript 中一样设置长度。

FREObject length;
FRENewObjectFromUint32(sizeof(nativeString), &length);
FRESetObjectProperty(argv[0], (const uint8_t*) "length", length, NULL);

关于c++ - 通过 C++ 为 AIR native 扩展生成可变长度的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com