首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取内置Mozilla Firefox组件的接口实现

获取内置Mozilla Firefox组件的接口实现
EN

Stack Overflow用户
提问于 2013-04-30 11:15:09
回答 1查看 345关注 0票数 0

我目前正在尝试用c++开发一个自定义密码管理器。

我已经开发了一个实现nsILoginManagerStorage界面的可部署模块,可以将其安装在火狐上,当出现密码字段时,火狐可以正确地调用它。

问题是,当我试图实例化要返回的nsILoginInfo对象时,do_CreateInstance函数总是返回null。我的方法实现是:

代码语言:javascript
运行
复制
NS_IMETHODIMP FirefoxComponent::FindLogins(uint32_t *count, const nsAString & aHostname, const nsAString & aActionURL, const nsAString & aHttpRealm, nsILoginInfo * **logins)
{
    nsILoginInfo ** array = static_cast<nsILoginInfo**>(nsMemory::Alloc(sizeof(nsILoginInfo*)));
    nsresult result;
    nsCOMPtr<nsILoginInfo> loginInfo = do_CreateInstance("@mozilla.org/login-manager/loginInfo;1" , &result);
    //nsCOMPtr<nsILoginManager> loginInfo = do_CreateInstance("@mozilla.org/login-manager;1" , &result);


    if (NS_FAILED(result)){
        printf("shouldn't be here!!\n");
        return result;
    }

}

我尝试获取一个nsILoginManager实例(只是为了检查它是否正常工作),但结果是相同的。nsILoginInfo可以由firefox上的java脚本使用以下命令实例化:

代码语言:javascript
运行
复制
    Components.classes["@mozilla.org/loginmanager/loginInfo;1"].createInstance(Components.interfaces.nsILoginInfo);

我在Ubuntu x64上使用Firefox20.0和xul-runner-SDK20.0(结果与20.0.1相同),并使用QtCreator (针对x64)构建。

我的代码的灵感来自于https://github.com/infinity0/mozilla-gnome-keyring

既然nsILoginInfo已经正确加载到火狐中了,那么火狐是否需要任何字段/信息才能允许我访问这些界面呢?

谢谢你的支持。

编辑:尝试通过直接访问组件管理器来加载模块,但无法加载组件管理器。

代码语言:javascript
运行
复制
    nsIComponentManager * manager;

    result = NS_GetComponentManager(&manager);


    if (NS_FAILED(result)){
        printf("failed getting component manager!!\n");
        return result;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 08:56:46

经过大量的尝试和错误,我发现这个错误是由于库的错误链接造成的。我遗漏了一个库(libxpcom.so)。

为了正确编译和运行它,我使用库libxpcom.so和libxpcomglue_s.a,这两个库都可以在gecko sdk/xul-runner lib文件夹中找到。

有关在每个平台中使用哪些库进行编译的更多信息:https://developer.mozilla.org/en-US/docs/XPCOM_Glue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16291592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档