在MFC DLL中未调用的命令和UPDATE_COMMAND_UI处理程序

时间:2015-04-30 12:28:32

标签: c++ dll mfc

我有一个MFC dll中菜单项的ON_COMMAND和ON_UPDATE_COMMAND_UI处理程序。但他们没有被援引。编译为.exe的相同代码调用了处理程序。这可能是什么原因?

1 个答案:

答案 0 :(得分:0)

仅当包含处理程序的对象位于命令路由中时,才会调用

ON_UPDATE_COMMAND_UI和ON_COMMAND处理程序。

因此DLL本身并不是问题,但这也取决于您创建DLL的方式。对于标准DLL而不将MFC共享为DLL,这根本不起作用。让它运行DLL的AFAIK应该是一个加载到应用程序中的扩展DLL。原因是当MFC静态链接时,主应用程序将无法识别标准DLL中的对象。

MSDNtechnical notes

中详细了解命令路由