LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 7868|回复: 11

“浮点数例外”是什么原因???????????

[复制链接]
发表于 2007-4-6 14:15:47 | 显示全部楼层 |阅读模式
程序运行 提示 “浮点数例外” 然后就自动退出了
大家见过这样的问题吗?

谢谢大家的分析
我把代码贴出来 大家帮我看看吧

省去了没有必要的程序段

static int WinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
 HDC hdc;
 static BITMAP s_bmp;
 static char bmpno[] = "0.jpg";
 bmpno[0] = '0';
 RECT rc = {23,12,321,240};

 switch (message) {
  case MSG_CREATE:
    SetTimer(hWnd, IDTIMER, 100);           
    break;
      
  case MSG_PAINT:
    if(LoadBitmapFromFile(HDC_SCREEN, &s_bmp, bmpno))
      {  return -1; }
    hdc = BeginPaint (hWnd);         
    FillBoxWithBitmap (hdc, 23, 12, 321, 240, &s_bmp);
    EndPaint(hWnd, hdc);
    break;
  case MSG_TIMER:
     
    if(wParam == IDTIMER)
     { bmpno[0] ++; }
    if(LoadBitmapFromFile(HDC_SCREEN, &s_bmp, bmpno))
     {  return -1; }
    GetClientDC(hWnd);
            
    FillBoxWithBitmap (hdc, 23, 12, 321, 240, &s_bmp);
    ReleaseDC(hdc);
           
     if(bmpno[0] = 30)
      {
    KillTimer(hWnd, IDTIMER);
    UnloadBitmap(&s_bmp);
    DestroyMainWindow (hWnd);
    PostQuitMessage (hWnd);
      }
            
    break;
        
  case MSG_CLOSE:
    KillTimer(hWnd, IDTIMER);
    UnloadBitmap(&s_bmp);
    DestroyMainWindow (hWnd);
    PostQuitMessage (hWnd);
    break;
  default:
    return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
  return 0;
}

=================================
下面的程序是根据大家的建议修改的 ,但是还是出现 “浮点数例外”的提示,然后就自动退出运行了

char bmpno[] = "0.jpg";
bmpno[0] = 48;
static int WinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    static BITMAP s_bmp;
    RECT rc = {23,12,321,240};

  switch (message) {
    case MSG_CREATE:
    SetTimer(hWnd, IDTIMER, 100);           
    break;
      
     case MSG_PAINT:
    if(LoadBitmapFromFile(HDC_SCREEN, &s_bmp, bmpno))
    {  return -1; }
    hdc = BeginPaint (hWnd);         
    FillBoxWithBitmap (hdc, 23, 12, 321, 240, &s_bmp);
    EndPaint(hWnd, hdc);
    break;
        



    case MSG_TIMER:
     
    if(wParam == IDTIMER)
    { bmpno[0] ++;
    LoadBitmapFromFile(HDC_SCREEN, &s_bmp, bmpno);
              
    GetClientRect(hWnd, &rc);
            
    FillBoxWithBitmap (hdc, 23, 12, 321, 240, &s_bmp);
    }
           
    if(bmpno[0] == 57)
    {
    KillTimer(hWnd, IDTIMER);
    UnloadBitmap(&s_bmp);
    DestroyMainWindow (hWnd);
    PostQuitMessage (hWnd);
    }
            
    break;
        
    case MSG_CLOSE:
    KillTimer(hWnd, IDTIMER);
    UnloadBitmap(&s_bmp);
    DestroyMainWindow (hWnd);
    PostQuitMessage (hWnd);
    break;
    default:
    return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
  return 0;
}
发表于 2007-4-6 14:41:43 | 显示全部楼层
难道是除0了?检查一下代码吧
回复 支持 反对

使用道具 举报

发表于 2007-4-6 14:46:10 | 显示全部楼层
楼主有必要打那么多个问号吗?似乎影响版面整洁呀
回复 支持 反对

使用道具 举报

发表于 2007-4-6 14:56:17 | 显示全部楼层
例外?什么东西啊,异常吧。
回复 支持 反对

使用道具 举报

发表于 2007-4-7 08:57:23 | 显示全部楼层
你要看你的核心板支持不支持浮点运算。如果不知道用其他的算法来
回复 支持 反对

使用道具 举报

发表于 2007-4-7 10:25:39 | 显示全部楼层
Post by manespz
你要看你的核心板支持不支持浮点运算。如果不知道用其他的算法来

楼主又没说是在搞嵌入,现在哪个通用cpu不支持浮点?难道又回到了386?
即使硬件不支持浮点,还有软浮点库, 用得着自己写吗? 当然你要愿意自己写,我也没脾气...
回复 支持 反对

使用道具 举报

发表于 2007-4-8 10:45:21 | 显示全部楼层
Post by biinn
楼主又没说是在搞嵌入,现在哪个通用cpu不支持浮点?难道又回到了386?
即使硬件不支持浮点,还有软浮点库, 用得着自己写吗? 当然你要愿意自己写,我也没脾气...


可能是 WinCE
回复 支持 反对

使用道具 举报

发表于 2007-4-11 21:01:32 | 显示全部楼层
好奇怪,只点了一次,版主帮删除
???
if(bmpno[0] = 30)
回复 支持 反对

使用道具 举报

发表于 2007-4-11 21:02:25 | 显示全部楼层
???
if(bmpno[0] = 30)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-11 23:09:35 | 显示全部楼层
Post by linux_________
???
if(bmpno[0] = 30)



谢谢您的回复,还得麻烦您帮我看看啊

修改的后的程序见1楼
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表