skylin_baiyi
小狐狸
小狐狸
  • UID36350
  • 注册日期2011-05-27
  • 最后登录2011-06-22
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:2733回复:3

[求助]从脚本如何获取从插件返回的字符串值?

楼主#
更多 发布于:2011-05-29 13:00
修改npruntime这个例子,其中有个GetProperty方法
bool
ScriptablePluginObject::GetProperty(NPIdentifier name, NPVariant *result)
{
  VOID_TO_NPVARIANT(*result);

  if (name == sBar_id) {
    static int a = 17;

    INT32_TO_NPVARIANT(a, *result);

    a += 5;
   }
}
html中,pluginobj.bar能得到GetProperty方法中a的值。但是如果改成字符串
static char* s = "wwwww";
STRINGZ_TO_NPVARIANT(s,*result);
html中,pluginobj.bar怎么也得不到s的值,显示undefined,麻烦高手解答一下啊,多谢哟
skylin_baiyi
小狐狸
小狐狸
  • UID36350
  • 注册日期2011-05-27
  • 最后登录2011-06-22
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2011-05-29 13:00
Re: 。。。
wangerxiao:char * retStr = (char *)NPN_MemAlloc(80);

STRINGZ_TO_NPVARIANT(retStr, *result);

NPN_MemAlloc,用这个函数分配内存就可以了,我用firefox4.0

现在同样遇到那个不能用在chrome下的问题
回到原帖


对。高版本的浏览器内存得用NPN_MemAlloc来分配,只是释放内存好像不用程序调用,自己就把NPN_MemAlloc分配的内存释放掉了,下次就不能再使用,有点疑惑
wangerxiao
小狐狸
小狐狸
  • UID36492
  • 注册日期2011-06-15
  • 最后登录2011-06-16
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2011-05-29 13:00
。。。
char * retStr = (char *)NPN_MemAlloc(80);

STRINGZ_TO_NPVARIANT(retStr, *result);

NPN_MemAlloc,用这个函数分配内存就可以了,我用firefox4.0

现在同样遇到那个不能用在chrome下的问题
skylin_baiyi
小狐狸
小狐狸
  • UID36350
  • 注册日期2011-05-27
  • 最后登录2011-06-22
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2011-05-29 13:00
换了个低版本的浏览器就可以了,谢谢大家
也许是NPAPI SDk的版本比较旧的缘故
skylin_baiyi:修改npruntime这个例子,其中有个GetProperty方法
bool
ScriptablePluginObject::GetProperty(NPIdentifier name, NPVariant *result)
{
  VOID_TO_NPVARIANT(*result);

  if (name == sBar_id) {
    static int a = 17;

    INT32_TO_NPVARIANT(a, *result);

    a += 5;
   }
}
html中,pluginobj.bar能得到GetProperty方法中a的值。但是如果改成字符串
static char* s = "wwwww";
STRINGZ_TO_NPVARIANT(s,*result);
html中,pluginobj.bar怎么也得不到s的值,显示undefined,麻烦高手解答一下啊,多谢哟
回到原帖
游客

返回顶部