使用BSTR数据类型时出错
Error in using the BSTR data type
我的firebreath插件项目有一个活动X控件的包装类。
其中一个方法接受BSTR数据类型变量作为输入,但是当我尝试调用该方法并传递BSTR时,我得到了一个错误。
我甚至包括了"WTypes.h"头文件。但这似乎并不能解决问题。
所以有人提出了一个替代方案。
short MakeCall (BSTR sNumber,short * nConnectionId );
Makecall函数通过使用以下参数调用活动x控件实现的Makecall函数
误差Error 1 error C2665: 'FB::variant_detail::conversion::convert_variant' : none of the 5 overloads could convert all the argument types c:usersresearchdownloadsfirebreath-firebreath-firebreath-1.6.0rc1-15-g411c7fefirebreath-firebreath-411c7fesrcscriptingcorevariant.h 842 1 axWrapper
PS:在我搜索了这个错误之后,我发现火焰呼吸不支持宽字符,即单一代码。那么是否有一种方法可以在firebreath中使用unicode数据类型
该错误表明您正在尝试将FB::variant转换为BSTR,这不是FB::variant知道如何做的事情。最有可能的是,这意味着您正在尝试在JSAPIAuto对象上注册的方法中使用BSTR作为类型。JSAPIAuto将自动转换类型,但您必须使用它能理解的类型,而BSTR不是其中之一。
相反,找到注册为JSAPI方法的任何方法,并将BSTR更改为std::wstring;然后将wstring转换为BSTR。
FireBreath支持unicode;您可以使用std::wstring来表示宽字符,而来自浏览器的std::string类型将是UTF8。你可以#include "utf8_tools.h",并使用FB::utf8_to_wstring和FB::wstring_to_utf8在它们之间进行转换。
希望能有所帮助
#include <atlbase.h>
相关文章:
- 防止主数据类型C++的隐式转换
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在C++中打印指向不同基元数据类型的指针的内存地址
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 如何计算数据类型的范围,例如int
- C++中数据类型修饰符的顺序
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 特定数据类型的模板类
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 有没有办法提示用户使用哪种数据类型作为模板 c++
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 为什么双精度数据类型在C++中出错?
- 将运算符<<与隐式转换的非基本数据类型一起使用时出错
- 为什么当我们把变量"u"的数据类型从长整型更改为整型时,模幂会出错?
- 使用矢量<数据类型>进行 arm 编译时出错
- C++中的模板仅在长数据类型上出错
- 数据类型匹配,但我的链表仍然出错
- 使用'int'数据类型时出错,即使数字不是小数
- 使用BSTR数据类型时出错
- 使用c++从xml文件返回char*以外的数据类型时出错