这是我的文件代码。
File1.cpp
void CIME::AddExceptKey(wchar_t key)
{
m_exceptKey.push_back(key);
}
File2.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
密钥,但没有机会。
答案 0 :(得分:0)
int的大小可以是2或4个字节,具体取决于实现,wchar_t的大小也在2,3或4个字节的数据之间变化。警告可能会丢失数据。你必须调试并查看是否有任何损失。
答案 1 :(得分:0)
如果没有强制转换,则不能使用需要wchar_t的int。
CPythonIME::Instance().AddExceptKey((wchar_t)key);
然而,我真的怀疑这是你想要做的。我不知道这些函数是做什么的,但是“GetInteger”和“AddExceptKey”表示你可能得到一个键码并按字符添加键。所以请在演出之前进行RTFM,否则可能会出现意想不到的行为。