簡體   English   中英

如何在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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM