0
我使用Visual C++ 2008和ADO訪問數據庫並獲得字段值是這樣的:錯誤BSTR轉換成CString的
_variant_t vtValue;
AfxVariantInit(&vtValue);
vtValue = m_pRecordset->Fields->GetItem(_variant_t(strFieldName))->GetValue();
If (vtValue.vt == VT_BSTR)
{
strValue = vtValue.bstrVal;
TRACE(_T(「Field value is %s.\r\n」), strValue); // Cause CrtDbgReport: String too long or IO Error
}
else
{
.. other codes…
}
爲strValue的TRACE的語句,會導致以下錯誤:
「CrtDbgReport: String too long or IO Error」
我只是檢查strValue,發現它是一個只有6個字符的中文字符串,沒什麼特別的。爲什麼它會導致錯誤?
由於
請問你能顯示'strValue'的定義嗎? – Mgetz
是的,它是CString strValue; – alancc
[本答案](http://stackoverflow.com/a/1685831/332733)可能會有用 – Mgetz