以下行在 vc6 中编译良好,但是当我在 vs2008 中升级项目时,我发现了很多错误,但主要是 2 个错误。
//open log file
parent->m_LogFile.open(strFileName, ios::app | ios::out, filebuf::sh_read);
错误:错误 C2653:"ios":不是类或命名空间名称
CString CReverseProxy::PutData(CString strData)
{
CString strSW = "";
CString strPayload;
DWORD dwRet;
BYTE SendBuffer[MAX_LEN];
BYTE RecvBuffer[MAX_RETURN_SIZE];
ULONG ulSendLength = sizeof(SendBuffer);
ULONG ulRecLength = sizeof(RecvBuffer);
while ((strData.GetLength() / 2) > 255)
{
strPayload = strData.Mid(0, 510);
strData = strData.Delete(0, strPayload.GetLength());//error
错误:错误 C2593:"运算符 ="不明确。
第一个问题可以通过在打开中使用std::ios
或using std::ios
文件开头来解决。
第二个问题是由CString::Delete
返回 int 的事实引起的。这绝对不是你想分配给strData
的,对吧?只需删除作业,Delete
无论如何都会修改strData
。