【发布时间】:2014-03-14 10:11:55
【问题描述】:
在将 VC++ 6.0 开发的代码迁移到 Visual Studio 2008 时,我收到以下警告
警告 C4244:“=”:从“long”转换为“VARTYPE”,可能会丢失数据
代码片段:
STDMETHODIMP CTextFileParser::FormatString(long lTargetType, BSTR szFormat, BSTR szInput, VARIANT *value) // Has Definition of lTargetType
CComVariant vErg(szSource.c_str()); // Definition of vErg
vErg.vt = lTargetType; // C4244
警告 C4244:“argument”:从“long”转换为“VARTYPE”,可能会丢失数据
代码片段:
STDMETHODIMP CField::get_ContentWithType(long lType, VARIANT *pVal) // Has Definition of lType
{
HRESULT hRC;
CComVariant oNewValue(m_content); // Definition of oNewValue
hRC = oNewValue.ChangeType(lType, NULL); // C4244
if (SUCCEEDED(hRC)) oNewValue.Detach(pVal);
return hRC;
}
我无法修复此警告?..
【问题讨论】:
标签: com visual-c++