自定義DLL顯示模式對話框時,控制檯顯示no message line prompt for id 0xe001的問題。

在主工程中的資源包裏默認爲定義 應用程序狀態欄的準備就緒消息鍵:
#define AFX_IDS_IDLEMESSAGE 0xE001

此鍵在資源包中String Table中會有對應的文本 比如:就緒 二字,版權:不及格的程序員-八神 。

但在自定義包裏,並沒有自動創建,在我們調用DLL中函數時,啓用了資源句柄切換,導致消息循環中找不到資源鍵,所以會在控制檯輸出Trace信息。

 

 然後我們看到主工程在創建窗體時,會向消息隊列發出0x362的消息,並且攜帶參數是0xe001,這正是刷新狀態條的,版權:不及格的程序員-八神 。

 

當我們在主工程的APP的InitInstance方法中調用DLL中的DoModal窗體時,模式窗口開始阻塞主工程消息循環,並且把資源句柄切換到自已(dll),然後DoModal本身的消息循環開始pumpMessage消息,這時就找不到資源鍵0xE001了,版權:不及格的程序員-八神 。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章