CMFCColorDialog 在 MFC 属性页中作为 Release 不工作,作为 Debug 工作正常
Posted
技术标签:
【中文标题】CMFCColorDialog 在 MFC 属性页中作为 Release 不工作,作为 Debug 工作正常【英文标题】:CMFCColorDialog not working in MFC Property Page as Release, OK as Debug 【发布时间】:2015-11-08 21:18:58 【问题描述】:标题几乎解释了它。这是单击按钮时显示 ColorDialog 的函数:
void
CMyPP::OnBnClickedButtonCol()
CMFCColorDialog dlg(m_text_colour);
if (dlg.DoModal() == IDOK)
m_text_colour = dlg.GetColor();
在发布版本中,单击按钮时没有任何反应。我看不出调试和发布之间的 VS 2008 选项有任何区别来解释它。我认为 CMFCColorDialog 来自 MFC 功能包,但程序的其余部分是基本的 MFC - 这可以解释吗? 谢谢
【问题讨论】:
进入MFC代码,这可能会给你一个线索。 请更具体地说明“什么都没有发生”,并具体说明您正在谈论的按钮,并添加一些“工作”调试版本的图片......所以任何信息都会帮助我们帮助你。 【参考方案1】:抱歉,我错过了一条重要信息,因为 Debug 版本在共享 dll 中使用 mfc,而发布是静态的。然后我找到了这个对我有用的解决方案: https://social.msdn.microsoft.com/Forums/en-US/7245ee72-ffd5-4167-b690-c2edc10fb88e/static-link-fails-with-vs2008-mfc-feature-pack 。 感谢您的帮助。
【讨论】:
请在此处添加链接解决方案的相关部分(链接可能会随着时间的推移而失效)。请接受您的回答。 好吧,这就是我必须做的。引用上面的链接:在您的资源包含中(在资源编辑器中选择:编辑->资源包含)在第二部分添加:#if !defined(_AFXDLL) #include "afxribbon.rc" // MFC 功能区和控制栏资源#endif以上是关于CMFCColorDialog 在 MFC 属性页中作为 Release 不工作,作为 Debug 工作正常的主要内容,如果未能解决你的问题,请参考以下文章
为啥从属性页调用afxmessagebox到扩展dll时mfc死锁
MFC 对话框的属性页包含文件在 Visual Studio 2008 中显示为空