errorC2664的有关问题,困扰小弟我一天了,

errorC2664的问题,困扰我一天了,请指教。
相同的步骤,我用VC6.0来做,可以编译成功,但用VS2008却出现了errorC2664的问题,百度了很多解决方式,但是都不能解决我的问题。请指教,例题如下:我用的VS2008会出错。
错误1error C2664: “BOOL CDC::TextOutA(int,int,const CString &)”: 不能将参数 3 从“char”转换为“const CString &”
我的工程设置是用的多字节字符集,没有用Unicode字符集。。。
按照下面的步骤我用VC6.0的MFC实现没有问题,但是用VS2008的MFC来做就有问题。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
设计一个应用程序,当用户每用鼠标左键单击程序窗口用户区时,都会在鼠标光标当前位置显示一个小写字母“m”,并且该程序中的数据以序列化的方式存盘。
(1)用MFC App Wizard以MFCexp9_6为名称创建一个多文档应用程序框架;
(2)创建一个CLetter类来描述小写字母“m"和鼠标键单击时光标的当前位置,即用户在程序用户区每按下左键一次,则会动态创建一个CLetter类对象。为使类具有序列化功能,CLetter类声明了一个无参数的构造函数,使用了序列化声明和实现宏,并从CObject基类派生。CLetter类声明及实现代码如下:
//CLetter类声明-------------------------------------
class CLetter : public CObject  
{
DECLARE_SERIAL(CLetter)
public:
char m_sLetter; //字符成员变量
int m_X,m_Y;
public:
CLetter( );
CLetter(char ch,int x,int y);
virtual void Serialize(CArchive& ar); //重载序列化函数
public:
virtual ~CLetter( );
};
//CLetter类实现---------------------------------------
IMPLEMENT_SERIAL(CLetter,CObject,1)
CLetter:: CLetter( ){ }
CLetter::CLetter(char ch,int x,int y)
{
m_sLetter=ch;
m_X=x;
m_Y=y;
}
CLetter::~ CLetter( ){ }


//重写的序列化函数
void CLetter::Serialize(CArchive& ar)
{
if (ar.IsStoring( ))
{
ar<<m_sLetter<<m_X<<m_Y;
}
else
{
ar>>m_sLetter>>m_X>>m_Y;
}
}
(3)在文档中定义了一个MFC提供的CTypedPtrList类型的指针链表,用以存放用户按下鼠标左键时创建的CLetter类对象,为此包含了头文件afxtempl.h。除此之外,文档类还声明并实现了两个函数:NewLetter()和DrawLetter()。前者可以将新创建的CLetter对象加入链表,后者可根据链表中对象的数据进行显示。部分实现代码如下:
//文档声明的部分代码---------------------------
#include <afxtempl.h> //必须包含此文件
#include "Letter.h"

class CMFCexp9_6Doc : public CDocument
{
        .
        .
        .
public:
CTypedPtrList<CObList,CLetter*>     m_LetterList;
void NewLetter(int x,int y);
void DrawLetter(CDC*pDC);
        .
        .
        .
virtual void Serialize(CArchive& ar);
        .
        .
        .
DECLARE_MESSAGE_MAP()
};
//文档类实现的部分代码------------------------------
//向链表加入新对象的成员函数
void CMFCexp9_6Doc::NewLetter(int x,int y)
{
CLetter* pLetterItem = new CLetter('m',x,y);//创建新对象
m_LetterList.AddTail(pLetterItem); //将新对象加入链表尾部
SetModifiedFlag( );   //设置文档修改标志
}
void CMFCexp9_6Doc::DrawLetter(CDC*pDC )
{
POSITION pos=m_LetterList.GetHeadPosition();//获得链表头位置
while(pos!=NULL)
{
CLetter*Letter=m_LetterList.GetNext(pos);//获得链表元素

pDC->TextOut(Letter->m_X-5, //显示
Letter->m_Y-12,
Letter->m_sLetter);//问题就是此句
}
}
//序列化函数
void CMFCexp9_6Doc::Serialize(CArchive& ar)
{

m_LetterList.Serialize(ar);
}
(4)视图类比较简单,该类声明并实现了鼠标左键按下消息处理函数和视图更新函数。前者调用了文档类的NewLetter()以创建新的对象并把鼠标光标当前位置传递到对象中,后者调用了文档类的DrawLetter()进行数据的显示。