Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Lỗi: A breakpoint has been reached. occurred in the application at location trong VC++

  1. #1
    Ngày gia nhập
    07 2008
    Bài viết
    1

    Mặc định Lỗi: A breakpoint has been reached. occurred in the application at location trong VC++

    Tôi đang dùng visual C++ xây dựng ứng dụng SDI: đọc ảnh bitmap từ file *.hex cho trước rồi hiển thị ảnh lên vùng client của ứng dụng, khi tôi compile thì hoàn toàn không có vấn đề gì nhưng khi run thì lại báo lỗi:"Debug assertion failed!" tôi nhấn Retry rồi sau đó nhấn Debug thì được thông báo lỗi như sau:
    The exception breakpoint
    A breakpoint has been reached
    (0x80000003) occurred in the application at location 0x5f44070e

    Đây là đoạn code trong hàm ondraw() của tui:

    Visual C++ Code:
    1. void CDemoBitmapView::OnDraw(CDC* pDC)
    2. {
    3.     CDemoBitmapDoc* pDoc = GetDocument();
    4.     ASSERT_VALID(pDoc);
    5.     // TODO: add draw code for native data here
    6.     HDC hdc=pDC->Detach();
    7.  
    8.     int FHandle;
    9.     BITMAPFILEHEADER bmpfh;
    10.     HANDLE hBmp, hBuff;
    11.     BITMAPINFO *BmpInfo;
    12.     unsigned char *Buff;
    13.     int Count,NumColor;
    14.     long n, BytesPerLine;
    15.     unsigned long width,height,numByte;
    16.     char *hexName="SaveFile.hex";
    17.    
    18.     FILE *fr;
    19.     //Lay kich thuoc, chieu rong va chieu cao cua anh Bitmap
    20.     if ((fr=fopen(hexName,"rb"))==NULL)
    21.         exit(1);
    22.     fread(&width,4,1,fr);
    23.     fread(&height,4,1,fr);
    24.     numByte=0;
    25.     unsigned char temp;
    26.     while (!feof(fr))
    27.     {
    28.         fread(&temp,1,1,fr);
    29.         numByte++;
    30.     }
    31.     fclose(fr);
    32.     Count=0;
    33.     SetCursor(LoadCursor(NULL, IDC_WAIT));
    34.     // Mo file bitmap de doc
    35.     if ((FHandle=open(hexName, O_BINARY|O_RDONLY))==-1)
    36.         exit(1);
    37.     //Doc thong tin cho phan Header
    38.     bmpfh.bfType=19778;
    39.     bmpfh.bfSize=54+numByte;
    40.     bmpfh.bfReserved1=0;
    41.     bmpfh.bfReserved2=0;
    42.     bmpfh.bfOffBits=54;
    43.     // Ðoc header file bitmap
    44.     hBmp=GlobalAlloc(LMEM_MOVEABLE,
    45.         bmpfh.bfOffBits-sizeof(BITMAPFILEHEADER));
    46.     BmpInfo=(BITMAPINFO*)GlobalLock(hBmp);
    47.     //doc thong tin cho phan Header Info
    48.     BmpInfo->bmiHeader.biSize=40;
    49.     BmpInfo->bmiHeader.biWidth=width;
    50.     BmpInfo->bmiHeader.biHeight=height;
    51.     BmpInfo->bmiHeader.biPlanes=1;
    52.     BmpInfo->bmiHeader.biBitCount=1;
    53.     BmpInfo->bmiHeader.biCompression=BI_RGB;
    54.     BmpInfo->bmiHeader.biSizeImage=numByte;
    55.     BmpInfo->bmiHeader.biXPelsPerMeter=0;
    56.     BmpInfo->bmiHeader.biYPelsPerMeter=0;
    57.     BmpInfo->bmiHeader.biClrUsed=0;
    58.     BmpInfo->bmiHeader.biClrImportant=0;
    59.     BmpInfo->bmiColors[0].rgbBlue=255;
    60.     BmpInfo->bmiColors[0].rgbGreen=255;
    61.     BmpInfo->bmiColors[0].rgbRed=255;
    62.     BmpInfo->bmiColors[1].rgbBlue=0;
    63.     BmpInfo->bmiColors[1].rgbGreen=0;
    64.     BmpInfo->bmiColors[1].rgbRed=0;
    65.     // Ðoc phan bitmap info và palette màu
    66.     if (BmpInfo->bmiHeader.biCompression != BI_RGB)
    67.         exit(1);
    68.     // Xác dinh so màu cua palette
    69.     NumColor=(int)pow(2,BmpInfo->bmiHeader.biBitCount);
    70.     if(NumColor>256)
    71.         exit(1);
    72.     // Xác dinh so byte cho 1 scanline
    73.     BytesPerLine=(bmpfh.bfSize-bmpfh.bfOffBits)/BmpInfo->bmiHeader.biHeight;
    74.     /* Cap nhat thông tin kích thuoc anh trên BITMAPINFO (hien tai = 0 neu anh không nén) */
    75.     BmpInfo->bmiHeader.biSizeImage=bmpfh.bfSize-bmpfh.bfOffBits;
    76.     // Ðoc noi dung file bitmap
    77.     hBuff=GlobalAlloc(GMEM_MOVEABLE, BmpInfo->bmiHeader.biSizeImage);
    78.     Buff=(unsigned char *)GlobalLock(hBuff);
    79.     if (!Buff)
    80.         exit(1);
    81.     //Doc bo 8 byte dau cua hexName.hex
    82.     unsigned long stemp;
    83.     read(FHandle,&stemp,4);
    84.     read(FHandle,&stemp,4);
    85.     // Ðoc tung dòng trên file
    86.     do
    87.     {
    88.         n=read(FHandle,Buff,BytesPerLine);
    89.         Buff+=n;
    90.         Count++;
    91.     }while (Count<BmpInfo->bmiHeader.biHeight);
    92.     close(FHandle);
    93.     GlobalUnlock(hBuff);
    94.     GlobalUnlock(hBmp);
    95.     SetCursor(LoadCursor(NULL, IDC_ARROW));
    96. /*-----------------Tao palette màu cho anh Bitmap---------------------*/
    97.     HANDLE hMemPal;
    98.     LOGPALETTE far *logPal;
    99.     HPALETTE hPal;
    100.     int i;
    101.     hMemPal=GlobalAlloc(LMEM_MOVEABLE,
    102.         sizeof(LOGPALETTE)+NumColor*sizeof(PALETTEENTRY));
    103.     logPal=(LOGPALETTE far *)GlobalLock(hMemPal);
    104.     // So muc trong Palette
    105.     logPal->palNumEntries=NumColor;
    106.     logPal->palVersion=0x300;
    107.     //Gán các giá tri màu RGB cho nhung Entry trong Palette
    108.     for (i=0;i<NumColor;i++) //Error here
    109.     {
    110.         logPal->palPalEntry[i].peRed=BmpInfo->bmiColors[i].rgbRed;
    111.         logPal->palPalEntry[i].peGreen=BmpInfo->bmiColors[i].rgbGreen;
    112.         logPal->palPalEntry[i].peBlue =BmpInfo->bmiColors[i].rgbBlue;
    113.         logPal->palPalEntry[i].peFlags = PC_RESERVED;
    114.     }
    115.     // Tao handle cho Palette
    116.     hPal=CreatePalette(logPal);
    117.     GlobalUnlock(hMemPal);
    118.     GlobalFree(hMemPal);
    119.     if (!hPal)
    120.         exit(1);
    121. /*------------------------Tao handle bmp file ------------------------------*/
    122.     SetCursor(LoadCursor(NULL, IDC_WAIT));
    123.     // Nap palette vào hdc
    124.     SelectPalette(hdc,hPal,FALSE);     
    125.     RealizePalette(hdc);
    126.     BmpInfo=(BITMAPINFO *)LocalLock(hBmp);
    127.     Buff=(unsigned char *)GlobalLock(hBuff);
    128.     //Tao bitmap
    129.     hBmp=CreateDIBitmap(hdc,(BITMAPINFOHEADER *)BmpInfo,
    130.         CBM_INIT, Buff, (BITMAPINFO *)BmpInfo,DIB_RGB_COLORS);
    131.     GlobalUnlock(hBuff);
    132.     GlobalUnlock(hBmp);
    133.     GlobalFree(hBuff);
    134.     GlobalFree(hBmp);
    135.     SetCursor(LoadCursor(NULL, IDC_ARROW));
    136.     if(!hBmp)
    137.         exit(1);
    138. /*-----------------------Hien thi bitmap lên cua so---------------------------*/
    139.    
    140.     HDC hMemDC;
    141.     HANDLE OldBmp;
    142.     // Tao MDC
    143.     hMemDC=CreateCompatibleDC(hdc);
    144.     SelectPalette(hMemDC, hPal, FALSE);    
    145.     // Tro ve palette he thong
    146.     UnrealizeObject(hPal);     
    147.     // Nap lai palette
    148.     RealizePalette(hdc);
    149.     SelectPalette(hMemDC, hPal, FALSE);
    150.     // Liên ket hMemDC voi anh bitmap
    151.     OldBmp=SelectObject(hMemDC, hBmp);
    152.     // Copy bitmap lên window
    153.     BitBlt(hdc,1, 1, width, height, hMemDC, 0, 0,SRCCOPY);
    154.     // Huy MDC
    155.    
    156.     SelectObject(hMemDC,OldBmp);
    157.     DeleteDC(hMemDC);
    158. }
    Các bác xem giúp tôi lỗi đó là lỗi gì được không ạ!
    Cảm ơn các bác nhiều!!!

    file SaveFile.hex là một file trong đó 4 byte đầu tin giữ thông tin về chiều rộng ảnh bitmap, 4 byte tiếp theo là chiều chiều dài, những byte còn lại là nội dung của ảnh bitmap.
    Muốn upload SaveFile.hex lên cho các bác xem nhưng ko biết upload thế nào vì nó ko giống như word,.... ko cho phep copy, gửi cả file thì được.
    Hic hic hic...
    Đã được chỉnh sửa lần cuối bởi lmtoan257 : 02-08-2008 lúc 05:16 PM. Lý do: Bỏ code vào thẻ CODE

  2. #2
    Ngày gia nhập
    11 2006
    Nơi ở
    Tiền Giang
    Bài viết
    28

    Tớ đang code 1 project MFC đơn giản gồm 2 project con:
    + DLL: DLL này không có export hàm nào cả, đơn giản chỉ là đăng ký 1 class với HĐH cho điều khiển là button.
    + Sau đó, chương trình sẽ gọi DLL này. Tớ viết thẳng đoạn code nạp DLL trong hàm khởi tạo của MFC Application.

    Tớ compile DLL thì ngon lành, còn khi compile cái MFC Application thì báo lỗi Debug Assertion Failed. Nó báo lỗi hàm Assert hay sao ý. Tớ không biết sữa lỗi này làm sao, meoconlongvang xem hộ tớ.


    Thanks!
    Attached Files Attached Files

Các đề tài tương tự

  1. Trả lời: 3
    Bài viết cuối: 25-09-2012, 06:30 PM
  2. Lỗi unhandled exception has occurred in your application có ai biết lỗi gì ko
    Gửi bởi ngocanh002 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 04-06-2011, 09:05 PM
  3. Database Lỗi "unhandled exception has occurred in your application" sau khi đóng gói phần mềm
    Gửi bởi martlucky trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 03-06-2011, 07:44 PM
  4. Lỗi Triggered a breakpoint Trong MFC khi thoát chưong trình
    Gửi bởi haian trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 28-02-2011, 12:27 AM
  5. Struct Sinh Viên. Lỗi An error occurred in your application.
    Gửi bởi dinhvanvo trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 25-03-2010, 11:03 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn