如何从龙龙转换为_variant_t类
How can I convert from LONGLONG to class _variant_t?
在这个例子中,m_Amount是CString。 stringToNumber 函数成功地将其转换为 LONGLONG 数。但是当我想将其分配给变体时,出现此错误:
error C2440: 'type cast' : cannot convert from '__int64' to 'class _variant_t'
我的代码
_variant_t myVar = _variant_t( (LONGLONG)stringToNumber(m_Amount) );
你不需要演员表。
用:
_variant_t(
__int64 i8Src
)
有关进一步_variant_t
参考,请参阅 MSDN
CE 不提供常规 Windows XP/Vista/Win 7 安装上可用的所有数据类型。在您的情况下,这意味着 WinCE 不支持 64 位有符号/无符号整数。因此,最好建议您使用较窄的数据类型或滚动自己的类型(可能使用两个int
)来获取LONGLONG
。
您使用什么工具链?
如果_WIN32_WINNT >= 0x501
,应该有一个从 __int64
到 _variant_t
的转换,这对应于至少 WinXP 的目标。 对于最新的Windows工具链来说,这应该是正确的,但是您可能需要使用一些较旧的工具(我相信是VS 2005)显式设置宏定义。
试试这个:
union UltimateCast
{
__int64 From;
__variant_t To;
};
将需要从中转换的__int64值放入"发件人"字段中。之后,从"收件人"字段中读取结果值。
我正在使用_variant_t将LONGLONG数据插入SQL服务器数据库。如前所述,该数字在C++中映射到CString。所以我从数据库中检索我的数字数据作为字符串,将其转换为 LONGON,更改然后再次将其转换为字符串并将结果字符串存储到数据库中。
SQL 数字 --(从数据库中检索)-->字符串 -> LONGLONG -> 字符串 --(插入到数据库中)--> SQL 数字
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- C++如何乘以包含 std::variant 元素的向量的迭代器?正在执行迭代器类型的转换?
- 将 std::variant<A, B> 转换为 std::variant<A, B, C>
- 将 uint16 转换为 WMI Variant for CreateSnapshot 方法
- 将 std::variant 转换为另一个具有类型子集的 std::variant
- 将 std::variant 转换为另一个具有超类型集的 std::variant
- 将变体、矢量<variant>和矢量<矢量<variant>>转换为我选择的等效类型
- 错误 C2664:'VariantCopy':无法将参数 2 从 'const VARIANT *' 转换为 'VARIANTARG *'
- 如何将带有VARIANT的C++方法转换为不带VARIANT的C#
- 如何在 c++ 中将 const FB::variant& 转换为用户定义的类?
- 将 boost::any 转换为 boost::variant 的通用函数
- 无法将ByRef VARIANT数组转换为SAFEARRAY
- 如何在C++中将结构转换为VARIANT
- 将VARIANT转换为字节,反之亦然
- 如何将字符串数组转换为 SAFEARRAY 或 VARIANT 或 COLEVariant
- 将代码从 vb6 转换为 c#-System.Variant.Marshal Helper 将对象转换为变体'