为什么这段代码在VC6下运行会出现CXX0030: Error: expression cannot be evaluated

abcbuzhiming 2012-12-22 11:40:44

m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0);
int strPartDim[3]= {100, 200, -1}; //分割数量
m_StatusBar.SetParts(3, strPartDim);

//设置状态栏文本
m_StatusBar.SetText(L"分栏一", 0, 0);
m_StatusBar.SetText(L"分栏二", 1, 0);
m_StatusBar.SetText(L"分栏三", 2, 0);
m_StatusBar.SetBkColor(RGB(0,0,250));
m_StatusBar.SetIcon(1,
SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME),FALSE)
);//为第二个分栏中加的图标


因为某些原因,我需要把原本在vc2010下运行的代码搬到VC6下,这段代码在VC2010下没问题,VC6下编译通过,运行就出现CXX0030: Error: expression cannot be evaluated,跟踪代码后发现问题出在
m_StatusBar.SetParts(3, strPartDim)这行,进一步跟踪后问题出现在
AFXCMN.INL代码里的这一部分

_AFXCMN_INLINE BOOL CStatusBarCtrl::SetParts(int nParts, int* pWidths)
{ ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, SB_SETPARTS, nParts, (LPARAM)pWidths); }

错误显示
名称 值
m_hWnd 0x00000000
unused CXX0030: Error: expression cannot be evaluated

请问何解
...全文
569 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ap080231999 2015-09-17
  • 打赏
  • 举报
回复
这类错误不是代码问题,而是有些变值用Debug是没法看到具体值的如HWND等。
傻X 2012-12-22
  • 打赏
  • 举报
回复
是不是m_StatusBar创建失败了? 判断下GetLastError看看结果
以免我忘记 2012-12-22
  • 打赏
  • 举报
回复
可能是状态栏没有创建成功,句柄为0
以免我忘记 2012-12-22
  • 打赏
  • 举报
回复
粗心了,看错了
以免我忘记 2012-12-22
  • 打赏
  • 举报
回复
strPartDim应该是一个整型数组。
静似寂静 2012-12-22
  • 打赏
  • 举报
回复
建议你看一下变量的定义,及参数传递有没有问题。在release版本下如果程序可以正常执行,其实不用管这个问题
以免我忘记 2012-12-22
  • 打赏
  • 举报
回复
strPartDim在那里定义的,内容是什么?
abcbuzhiming 2012-12-22
  • 打赏
  • 举报
回复
引用 6 楼 tiger9991 的回复:
是不是m_StatusBar创建失败了? 判断下GetLastError看看结果
却是像你说的,创建失败了,一个参数搞错了,修正后就正常了

16,472

社区成员

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

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

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