遇到的問題

1、

 

若class CNMDevCtrlProtocol : virtual public CNetComm則StartTimer編譯通不過

 

 

2、ActiveX在IE下加載多個,相當於多線程,所以這時候的ActiveX不要使用全局變量,當時如果編寫動態庫也不要使用全局變量

 

3、BTN灰顯或SLEEP()一段時間再恢復,其實灰顯並沒用,在SLEEP的這段時間,再去按這個按鈕,依然可以響應

 

4、ActiveX在IE下總是紅叉,其實360的實時保護中的系統防火牆會阻止ActiveX下載

 

5、數組引用

     int sz[10];

     void Fun(int* p, int size);

     void Fun(int (&arr)[10]);

 

6、CYGWIN編譯時注意360保險箱會降低編譯效率,原因是它具有文件系統監控功能

 

7、疑難雜症之函數參數一致性
我們都知道,當傳入的參數與函數聲明的參數不一致時,編譯工具會報錯,所以參數一致性這一點一般人容易忽視它。
如果我們將函數指針當作參數傳入(回調函數),那麼在調用函數時參數不一致,編譯工具也不會報錯,一旦該函數被執行,則程序崩潰。
這個問題爲什麼難查原因有:
一、編譯時不報錯,運行時如果沒有進行回調也不會死
二、回調函數參數變化,有時會忘記在回調時更改參數
三、回調函數的調用頻率可能不高,也許程序運行幾個月才調用一次,一調就死
四、程序崩潰後彈出框沒有絲毫有用信息
鑑於這些問題,提醒大家注意保持函數參數一致性

發佈了29 篇原創文章 · 獲贊 2 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章