0

我正在建造一个 ANE。在我对本机代码的一次调用中,创建了一个对象,我希望能够将其保存在内存中以在将来的调用中引用。

我想我可以通过创建一个指向对象的指针,然后将该指针传递给 FRESetContextNativeData() 来做到这一点,如下例所示:

FREObject storeData(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    char* data = "testing...";
    FRESetContextNativeData( ctx, &data );
    return getFREString(data);
}

FREObject retrieveData(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    char* data;
    FREGetContextNativeData(ctx, (void**)&data);
    return getFREString(data);
}

然而,这似乎不起作用。在retrieveData() 的末尾,data指向一堆随机性。是什么赋予了?

4

1 回答 1

0

所以我有点傻。我犯的错误是在调用 FRESetContextNativeData()&之前犯的错误。data那只需要一个指针,而不是指向 FREGetContextNativeData() 之类的指针的指针。

以下代码产生了我期望的结果:

FREObject storeData(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    char* data = "testing..."
    FRESetContextNativeData( ctx, (void*)data );
    return getFREString(data);
}

FREObject retrieveData(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    char *data;
    FREGetContextNativeData(ctx, (void**)&data);
    return getFREString(data);
}
于 2013-08-15T20:37:12.123 回答