| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 595 人关注过本帖
标题:输出hello world的问题?
收藏  订阅  推荐  打印 
zjl138
Rank: 4
等级:高级会员
威望:1
帖子:773
积分:9164
注册:2007-11-12
输出hello world的问题?

我用VS2005建了一个名为“bubble"的工程,想先玩一个最简单。可还是遇到了问题。
void CbubbleView::OnDraw(CDC* pDC)
{
    CbubbleDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    // TODO: 在此处为本机数据添加绘制代码
    CRect object;
    GetClientRect(&object);
    int x=object.right/2,y=object.bottom/2;
    pDC->SetTextAlign(TA_CENTER|TA_BASELINE);
    pDC->TextOutW(x,y,"Love Fan Forever!");
}//这是我输出HELLOWORLD的代码,下面是错误提示:
1>正在编译...
1>bubbleView.cpp
1>d:\my documents\visual studio 2005\projects\bubble\bubble\bubbleview.cpp(62) : error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : cannot convert parameter 3 from 'const char [18]' to 'const CString &'
1>        Reason: cannot convert from 'const char [18]' to 'const CString'
1>        Constructor for class 'ATL::CStringT<BaseType,StringTraits>' is declared 'explicit'
1>        with
1>        [
1>            BaseType=wchar_t,
1>            StringTraits=StrTraitMFC_DLL<wchar_t>
1>        ]

请问是怎么回事,要怎样修改,谢谢!!!
搜索更多相关主题的帖子: hello  world  输出  
2008-3-23 22:27
sunkaidong
Rank: 12Rank: 12Rank: 12
来自:南京师范大学
等级:版主
威望:4
帖子:4131
积分:44881
注册:2006-12-28

pDC->TextOutW(x,y,"Love Fan Forever!");?
pDC->TextOut(x,y,"Love Fan Forever!");
改过就对了。。。。

[ 本帖最后由 sunkaidong 于 2008-3-23 22:41 编辑 ]

学习需要安静。。海盗要重新来过。。
2008-3-23 22:36
zjl138
Rank: 4
等级:高级会员
威望:1
帖子:773
积分:9164
注册:2007-11-12

忘了说我建的是MFC 应用程序工程,还是就是输出内容被我改了,不是hello world了,呵呵!
谢谢!

i like linux...
2008-3-23 22:36
zjl138
Rank: 4
等级:高级会员
威望:1
帖子:773
积分:9164
注册:2007-11-12

谢谢二楼,两个我都试了,但都会出现同样的错误,按错误提示:
Constructor for class 'ATL::CStringT<BaseType,StringTraits>' is declared 'explicit',可能跟explicit这个关键字有关,但我不知往哪能去改,还望指教,谢谢!

[ 本帖最后由 zjl138 于 2008-3-24 06:55 编辑 ]

i like linux...
2008-3-23 22:39
sunkaidong
Rank: 12Rank: 12Rank: 12
来自:南京师范大学
等级:版主
威望:4
帖子:4131
积分:44881
注册:2006-12-28

我没用模板。。。不知道你做什么。。
explicit
C++ Specific

This keyword is a declaration specifier that can only be applied to in-class constructor declarations. Constructors declared explicit will not be considered for implicit conversions. For example:

class X {
public:
   explicit X(int);      //legal
   explicit X(double) {   //legal
      // ...
   }
};

explicit X::X(int) {}      //illegal
An explicit constructor cannot take part in implicit conversions. It can only be used to explicitly construct an object. For example, with the class declared above:

void f(X) {}
void g(int I) {
   f(i);      // will cause error
}
void h() {
   X x1(1);      // legal
}
The function call f(i) fails because there is no available implicit conversion from int to X.

Note   It is meaningless to apply explicit to constructors with multiple arguments, since such constructors cannot take part in implicit conversions.

END C++ Specific

学习需要安静。。海盗要重新来过。。
2008-3-23 22:56
zjl138
Rank: 4
等级:高级会员
威望:1
帖子:773
积分:9164
注册:2007-11-12

很感谢楼上,可是我试着把pDC->TextOutW(x,y,"Love Fan Forever!");改为
pDC->TextOut(x,y,"Love Fan Forever!");
再编译,错误竟然一样。
>d:\my documents\visual studio 2008\projects\helloworld\helloworld\helloworldview.cpp(59) : error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : cannot convert parameter 3 from 'const char [13]' to 'const CString &'
1>        Reason: cannot convert from 'const char [13]' to 'const CString'
1>        Constructor for class 'ATL::CStringT<BaseType,StringTraits>' is declared 'explicit'
1>        with
1>        [
1>            BaseType=wchar_t,
1>            StringTraits=StrTraitMFC_DLL<wchar_t>
1>        ]
1>Generating Code...
1>Skipping... (no relevant changes detected)
1>HelloWorld.cpp
1>HelloWorldDoc.cpp
1>MainFrm.cpp

i like linux...
2008-3-24 07:08
zjl138
Rank: 4
等级:高级会员
威望:1
帖子:773
积分:9164
注册:2007-11-12

行了,我晕,查MSDN,看得头晕晕的,终于被我看出来了,只要把
pDC->TextOut(x,y,"Love Fan Forever!");改为:
pDC->TextOut(x,y,_T("Love Fan Forever!"));
就什么事都没了。
非常感谢sunkaidong帮助,谢谢!

i like linux...
2008-3-24 12:47
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.764555 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved