cannot convert from 'class CString' to 'const char *'怎么解决

yb210021 2009-07-31 10:16:46
代码如下:(请问怎么决绝,急!!!)
CString strField[8],strTop;
strField[0]="ÉÌÆ·±àºÅ";
strField[1]="ÉÌÆ·Ãû³Æ";
strField[2]="ÏÖÓÐÊýÁ¿";
strField[3]="¼Û ¸ñ";
strField[4]="²É¹ºÊýÁ¿";
strField[5]="²É¹º¼Û¸ñ";
strField[6]="¹©Ó¦ÉÌ";
strField[7]="¼Æ»®²É¹ºÊ±¼ä";

CString Title="¼Æ»®²É¹ºÐÅÏ¢";

CWaitCursor wait;
_Application wordApp;
_Document wordDoc;
Documents wordDocs;
if(!wordApp.CreateDispatch(_T("word.Application")))
{
AfxMessageBox(_T("Failed!"));
return;
}
LPDISPATCH pDocs=wordApp.GetDocuments();
wordDocs.AttachDispatch(pDocs);
VARIANT varUnit;
VARIANT varOptional;
VariantInit(&varUnit);
varUnit.vt=VT_I4;
varUnit.lVal=5;
//
VariantInit(&varOptional);
varOptional.vt=VT_ERROR;
varOptional.scode=DISP_E_PARAMNOTFOUND;
//
LPDISPATCH pDoc=wordDocs.Add(&varOptional,&varOptional,&varOptional,&varOptional);
wordDoc.AttachDispatch(pDoc);

long nRows,nCols;
nRows=8;
nCols=8;
//
Range wordRange;
wordRange=wordDoc.Range(&varOptional,&varOptional);
//
Selection wordSelec=wordApp.GetSelection();
_Font oFont;
_ParagraphFormat wordFormat;

//±êÌâ
wordSelec.HomeKey(&varUnit,&varOptional);

oFont=wordSelec.GetFont();
oFont.SetSize(12);
oFont.SetName(_T("ËÎÌå"));
wordFormat=wordSelec.GetParagraphFormat();
wordFormat.SetAlignment(1);
wordSelec.InsertAfter(LPCSTR(Title));这行出错了
wordSelec.InsertParagraphAfter();

oFont.SetSize(16);
oFont.SetName(_T("ºÚÌå"));
wordFormat=wordSelec.GetParagraphFormat();
wordFormat.SetAlignment(1);
wordSelec.InsertAfter((char *)(LPCSTR)strTop);这行也出错了
wordSelec.InsertParagraphAfter();

wordSelec.EndKey(&varUnit,&varOptional);

//ÉèÖñí¸ñ
wordRange=wordSelec.GetRange();
oFont=wordSelec.GetFont();
oFont.SetSize(10);
oFont.SetName(_T("ËÎÌå"));
wordFormat=wordSelec.GetParagraphFormat();
wordFormat.SetAlignment(1);
...全文
1212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gtsfreer 2009-07-31
  • 打赏
  • 举报
回复
上面的出错我怀疑你的类型不对 不是 LPCSTR
可能是LPCWSTR?
yb210021 2009-07-31
  • 打赏
  • 举报
回复
牛,解决了,谢谢大侠了,我关键是每份了,等有分了再送给你吧!非常谢谢
gtsfreer 2009-07-31
  • 打赏
  • 举报
回复
上面的LPCTSTR 改成 LPCSTR 一样的效果,你可以自己试试
gtsfreer 2009-07-31
  • 打赏
  • 举报
回复
CString ab;
ab=("dddddd");
LPCTSTR aaa;
aaa= ab.GetBuffer(0);
这样肯定是可以转的
wordSelec.InsertAfter(Title.GetBuffer(0));
yb210021 2009-07-31
  • 打赏
  • 举报
回复
不行,以前的错误提示是cannot convert from 'class CString' to 'const char *',改成你说的那样成了'InsertAfter' : cannot convert parameter 1 from 'const char *' to 'const unsigned short *',请大侠帮忙啊
gtsfreer 2009-07-31
  • 打赏
  • 举报
回复
getbuffer(0)....
yb210021 2009-07-31
  • 打赏
  • 举报
回复
不行, 'GetBuffer' : function does not take 0 parameters出现这个错误提示了。我改成这样了wordSelec.InsertAfter((LPCSTR)Title.GetBuffer());
gtsfreer 2009-07-31
  • 打赏
  • 举报
回复
CString 转 LPCSTR? 用title.getbuffer()试一下?
yb210021 2009-07-31
  • 打赏
  • 举报
回复
好心人啊,帮帮忙啊 !!!!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧