c++ - 如何使用 nsCOMPtr 正确调用 do_QueryInterface

标签 c++ firefox-addon xpcom

我正在为 win32 使用 Gecko SDK 32.0.2。 我有这段代码,它应该可以工作:

nsCOMPtr<nsIDOMDocument> doc;
dwi->GetDocument(getter_AddRefs(doc));
nsCOMPtr<nsIDOMDocumentXBL> xbl(do_QueryInterface(doc));

但是,编译器说:

no instance of overloaded function 'do_QueryInterface' matches argument list nsCOMPtr<nsIDOMDocument>

可用的重载是:

do_QueryInterface(nsISupports* rawPointer)

do_QueryInterface(already_AddRefed<T>&)

在这种情况下如何正确调用函数?

最佳答案

我会自己回答... 正如我在评论中所写,我在 ask.m.o. 上没有得到任何答案,但我找到了原因。 它与消息没有直接关系,这是由于 VSC++ 项目属性: Treat WChar_t as Built in Type 应该设置为“Yes (/Zc:wchar_t)”

关于c++ - 如何使用 nsCOMPtr 正确调用 do_QueryInterface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26664663/

相关文章:

javascript - 如何在 Javascript 中通过 Firefox XPCOM 获取可靠的 HTTP 消息

c++ - c++释放对象内存

c++ - delete[] "know"操作数数组的大小如何?

C++ 对数组位置使用 bool 值评估(跳转表)

javascript - mozIStorageConnection 和异步lastInsertRowID

javascript - 如何检查XPCOM组件中的目录分隔符

c++ - 为什么 a+1 == *(a+1) 在这个例子中?

javascript - 编码浏览器扩展、插件、Firefox、Safari、Chrome 等……这可能吗?

css - XUL 按钮和文本框抗样式化

javascript - 将文件从插件复制到配置文件文件夹