请问关于MessageBox()函数显示乱码的有关问题

请教关于MessageBox()函数显示乱码的问题
各位前辈:
       小弟在学习孙鑫VC++的时候,按例子编写以下一段代码:

void CFileView::OnFileWrite()
{
// TODO: 在此添加命令处理程序代码
CFile file(_T("6.txt"), CFile::modeCreate | CFile::modeWrite);
file.Write(_T("http://www.sunxin.org"), strlen("http://www.sunxin.org"));

file.Close();
}

void CFileView::OnFileRead()
{
// TODO: 在此添加命令处理程序代码
CFile file(_T("6.txt"), CFile::modeRead);
TCHAR * pBuf;
DWORD dwFileLen;
dwFileLen = file.GetLength();
pBuf = new TCHAR[dwFileLen+1];
pBuf[dwFileLen] = 0;
file.Read(pBuf, dwFileLen);
file.Close();


MessageBox(pBuf);
}

结果生成的 6.txt 中内容只有:h t t p : / / w w w .

MessageBox 显示的内容也是乱码,请问这段代码的问题出在哪里呢。谢谢!

------解决思路----------------------
我推测遇到\0显示结束了
------解决思路----------------------
file.Write(_T("http://www.sunxin.org"), strlen("http://www.sunxin.org"));
改为:
file.Write(_T("http://www.sunxin.org"), strlen("http://www.sunxin.org")*2);
------解决思路----------------------
lz使用ansi编译试试看
------解决思路----------------------
你的工程是Unicode格式的,那么字符串函数就要与之匹配,字符个数,字符串占用字节数不要搞错了
------解决思路----------------------
问题是你使用的是unicode编码,但是strlen是真对ansi的所以计算长度时不准确,应该乘以2,
读取数据时应该读取dwFileLen + sizeof(TCHAR),而非dwFileLen,没有读入0,所以会出现乱码,