最近一段時間遇到的問題

來源:互聯網
上載者:User

1. delete的時候出錯

用new申請的空間,然後在程式的某個時候delete,但一運行到delete處就會崩潰,開始就坐那兒尋找問題,找了半天也沒找到,但好像又沒有什麼問題,但不可能無緣無故就會出錯吧,於是靜下心來隨意的瀏覽程式碼,突然發現,這塊記憶體是共用記憶體,此時還Map著呢,暈了……

 

2. HBITMAP只能被選入一個DC中

往DC上畫圖片的時候一直出問題,有時候就是全黑的,圖片根本畫不上去,後來查了一下SelectObject才發現,原來bitmap在某個時候只能被選入一個DC中

 

3. 建立線程時要注意的問題

在寫程式的時候有個需求是就顯示圖片,因為好多格式的圖片在顯示的時候都需要解碼,所以我用了建立線程的方法來顯示的圖片,但卻發現用滑鼠點來顯示圖片,和用鍵盤來選擇圖片然後顯示圖片的效果卻不一樣,用鍵盤來顯示,完全正常,用滑鼠選擇來顯示圖片,卻出現了異常,即圖片根本顯示不出來,這下就奈悶了……

後來一調試才突然明白,原來因為My Code本身就有問題:

虛擬碼如下:

DWORD NewThread(int b)

{

   Use(b);

}

 

void fun(LPTSTR a)

{

   LPTSTR b = ***;

   CreateThread(NewThread, b);

}

 

原來是因為在調用完CreateThread之後,調用fun時所建立的棧幀就會被釋放,此時b位置的值成了不可確定的值了,所以將b改成static類型的,就可能解決這個問題,只說是可能,即,如何連續調用2次這個fun函數,即使b是static類型的,也有可能會出現問題,因為第二次調用時,就可能會把b的值更改,此時第一次建立的新線程如果還沒有使用這個值,在使用的時候就會使用一個錯誤的值。

 

 

現在也想不起來還有什麼問題了。因為同學來了,陪同學玩了2天,下午的時候送走了同學之後,然後回家之後就和舍友吃飯,在超市裡面買了很多東西,然後拿燒水的來燒火鍋,呵呵,吃的挺撐的。

吃完之後準備看電影,正下載著《騎士歪轉》,突然想起來這周好像還沒寫部落格,但又不知道寫什麼,因為這周什麼也沒幹,本來開始想寫如何使用gif圖片呢,但最後因為沒有解決如何用IImageDecoder顯示gif的問題,所以也就不好意思寫了。後來又想寫gcc的使用,因為最近可能暫時要去做linux後台了……,前幾天拿著gcc的手冊看了看,但這些東西在網上一搜一大把,寫了也沒啥意思……

 

電影快下完了,今天看完電影剛好可以睡覺了……

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.