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 中显示为空

VS2010-MFC(对话框:属性页对话框及相关类的介绍)

在 MFC 对话框中拖放

MFC之向导页和属性页(CPropertyPage/CPropertySheet)

MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)