91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WinCE5.0 運行異常提示:0x80000002解決過程

發布時間:2020-07-15 19:09:02 來源:網絡 閱讀:1782 作者:fengyuzaitu 欄目:編程語言

場景

    將代碼移植到Wince5.0系統上,芯片框架是mips,之前的代碼在x86和arm等架構上運行正常。顯示bmp位圖的時候會彈出窗口提示:異常:0x80000002錯誤提示


步驟

1)

    通過VS錯誤查詢工具得到的結果是:內存已經用完,實際上還有內存可以申請

2)

    嘗試加載小圖片,無效

3)

    不加載圖片,成功顯示

4)

    嘗試在其他的地方可以申請到8MB的內存

5)

    通過日志輸出,定位到bmp位圖的結構體賦值的過程中,出現錯誤,初步懷疑是棧溢出,但是如果省去不調用,還是可以執行成功的

6)

    百度過程中,發現該錯誤提示還有一層含義:

程序讀取一個未經對齊的數據時引發的異常 EXCEPTION_DATATYPE_MISALIGNMENT 屬于硬件異常

7)

    原來bmp位圖的結構體的頭部是一個14個字節的結構體,里面的變量并沒有進行字節的對齊,屬于非對齊的地址訪問,所以有些不對齊的b變量不能夠直接訪問,需要將數據通過memcpy逐個字節拷貝出來,然后拼湊成完整的屬性。

  //在mips架構下不支持非對齊數據訪問,bmp位圖頭部是14個字節,不符合4個字節對齊訪問,因此采用字節拷貝的方式進行訪問

  int offsetWidth = (int)&((PBITMAPINFOHEADER)0)->biWidth;

  memcpy(&(dest->m_width), offset + offsetWidth, sizeof(LONG));

  int offsetHeight = (int)&((PBITMAPINFOHEADER)0)->biHeight;

  memcpy(&(dest->m_height), offset + offsetHeight, sizeof(LONG));


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桐庐县| 洞头县| 韩城市| 平凉市| 通道| 聂拉木县| 闽侯县| 福贡县| 东兴市| 英吉沙县| 屯昌县| 钟祥市| 华亭县| 泰州市| 嘉义县| 开平市| 镶黄旗| 泉州市| 德昌县| 吴忠市| 巴青县| 贵阳市| 广宁县| 光泽县| 南汇区| 河北区| 江川县| 中牟县| 崇礼县| 读书| 洪湖市| 寿光市| 金坛市| 定边县| 平顶山市| 临江市| 正镶白旗| 赞皇县| 嘉禾县| 来凤县| 柏乡县|