如何在AIR本机扩展中使用FRESetContextNativeData()
How do I use FRESetContextNativeData() in AIR native extensions?
我正在构建一个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
指向一堆随机性。什么东西?
所以我有点白痴。在对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);
}
相关文章:
- 没有找到相关文章