自定义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了,版权:不及格的程序员-八神 。

 

 

 

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