| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1674 人关注过本帖
标题:求助,类型转换错误,vc6可以通过,但是vc2005编译错误, 紧急
只看楼主 加入收藏
网球浪子
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-5-21
收藏
 问题点数:0 回复次数:0 
求助,类型转换错误,vc6可以通过,但是vc2005编译错误, 紧急
求助,类型转换错误,vc6可以通过,但是vc2005编译错误,
 
有一个编译错误,但是在vc6却没有问题,2005无法通过,求达人帮助
afx_msg void OnAddString(const CString* str);(函数声明)
错误说明: “static_cast”: 无法从“void (__thiscall COutputView::* )(const CString *)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”

我把函数改成LRESULT COutputView::OnAddString(WPARAM wparam,LPARAM lparam)结果错误更多(函数体及声明见后面)
由于必须函数指针参数类型必须一致,参数个数必须一致,返回值必须一致,调用方式必须一致
所以具体怎么实现,请高手知道一下,最好能够将函数的声明及传递参数写明

    afx_msg void OnAddString(const CString* str); //头文件声明

    ON_MESSAGE(UMSG_ADDSTRING,OnAddString)

void COutputView::OnAddString(const CString* str) //源函数定义
{
    m_strList.AddTail(*str);

    CSize size = GetTotalSize();
    int height = m_strList.GetCount()*m_FontHeight;
    if(height > size.cy){
        SetScrollSizes(MM_TEXT,CSize(500,height));
        POINT pt;
        pt.x = 0;
        pt.y = height;
        ScrollToPosition(pt);
    }

    Invalidate(FALSE);

    MSG msg;
    if(::PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
        ::SendMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam);
    }
}
搜索更多相关主题的帖子: vc2005编译 类型 函数 void thiscall 
2008-05-22 09:33
快速回复:求助,类型转换错误,vc6可以通过,但是vc2005编译错误, 紧急
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016255 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved