从 int 到 wchar_t 的转换无效
Invalid conversion from int to wchar_t
这是我的文件代码。
文件1.cpp
void CIME::AddExceptKey(wchar_t key)
{
m_exceptKey.push_back(key);
}
文件2.cpp
PyObject *imeAddExceptKey(PyObject *poSelf, PyObject *poArgs)
{
int key;
if(!PyTuple_GetInteger(poArgs, 0, &key))
{
return Py_BuildException();
}
CPythonIME::Instance().AddExceptKey(key);
return Py_BuildNone();
}
这是我的警告:
warning C4242: 'argument': conversion from 'int' to 'wchar_t', possible loss of data
警告在这一行:
CPythonIME::Instance().AddExceptKey(key);
我做错了什么?我尝试了wchar_t
钥匙,但没有机会。
int
的大小可以是 2 或 4 个字节,具体取决于实现和wchar_t的大小也在 2,3 或 4 个字节的数据之间变化。它警告可能会丢失数据。你必须调试,看看是否有任何损失。
在没有
强制转换的情况下,不能在需要wchar_t的地方使用 int。
CPythonIME::Instance().AddExceptKey((wchar_t)key);
但是,我真的怀疑这是您想要做的。 我不知道这些函数是做什么的,但是"GetInteger"和"AddExceptKey"表示您正在获得一个键码并按字符添加键。 所以请在投掷之前进行RTFM,否则你可能会有意想不到的行为。
相关文章:
- 错误:从"int"到枚举c++的转换无效
- 从 'int' 到 'int*' CPP 的转换无效
- C++ PTHREADS - 无效转换无效*(*)()到无效*(*)(无效*)
- 为什么我收到"从常量指针到指针的转换无效?
- 错误:从"int"到"int*"的转换无效[-允许].我在下面提供了我的代码,我
- 从类指针到 int 的转换无效
- C++ 错误:由于 swprintf 而从 'int' 到 'const wchar_t* 的转换无效
- 错误:从'void*'到'const uint8_t* {aka const unsigned char*}'的转换无效 [-允许]
- QTextStream的操作数到二进制的转换无效
- 从类型"void*"到函数指针的强制转换无效
- 错误:从 'char' 到 'const char' [-允许] strcat(加密,密钥[i])的转换无效;
- C++ - 从 "int" 到 "unsigned char" 的缩小转换无效
- 返回对象时从'const DList<int>* const'到 'DList<int>*' [-fallowive] 的转换无效
- 错误:AES 加密密钥:从"char*"到"无符号字符"的转换无效
- 模板类实例化中的指针转换无效
- 从"int"到"矢量*"的转换无效
- 从类型"void*"到类member_function指针的强制转换无效
- 在 sprintf 中从 'signed char*' 到 'char*' 的转换无效
- 另一个:从"常量类型*"到"类型*"的转换无效
- constexpr 链表 - 从 const X* 到 X* 的转换无效