JS要传一个int型的数值给C++,但是,传入的都不是我要的数值,感觉像是地址,不知道怎么回事,求高手帮忙。
JS代码:function GetMenuListName(i)
{
alert("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
Demo.ReturnMenuListName(i);
}NPAPI C++代码
char *ScriptablePlayerPluginObject::ReturnMenuListName(const NPVariant param)
{
MSG_INFO(printf("ScriptablePlayerPluginObject::ReturnMenuListName\n"));//我传入的数值就是1,根本就不走这里,直接认为是double,读取出来的数据是1297864976,用不用指针读出来的都是一样的,不知道是怎么回事。
if (NPVARIANT_IS_INT32(param))
{
int index = NPVARIANT_TO_INT32(param);
if (index >= 0)
{
printf("=========>ReturnMenuListValue File invoked. param:%d,%s .\n", index,menuList.stMenuSet[index].szName);
return (menuList.stMenuSet[index].szName);
}
else
{
MSG_ERROR(printf("param too small!\n"));
return NULL;
}
}
return NULL;
}
JS代码:function GetMenuListName(i)
{
alert("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
Demo.ReturnMenuListName(i);
}NPAPI C++代码
char *ScriptablePlayerPluginObject::ReturnMenuListName(const NPVariant param)
{
MSG_INFO(printf("ScriptablePlayerPluginObject::ReturnMenuListName\n"));//我传入的数值就是1,根本就不走这里,直接认为是double,读取出来的数据是1297864976,用不用指针读出来的都是一样的,不知道是怎么回事。
if (NPVARIANT_IS_INT32(param))
{
int index = NPVARIANT_TO_INT32(param);
if (index >= 0)
{
printf("=========>ReturnMenuListValue File invoked. param:%d,%s .\n", index,menuList.stMenuSet[index].szName);
return (menuList.stMenuSet[index].szName);
}
else
{
MSG_ERROR(printf("param too small!\n"));
return NULL;
}
}
return NULL;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货