MFC MDI - “遇到不正确的论点”

Posted

技术标签:

【中文标题】MFC MDI - “遇到不正确的论点”【英文标题】:MFC MDI - "Encountered an improper argument" 【发布时间】:2012-07-06 15:01:29 【问题描述】:

我已将 VLC 播放器嵌入到 MFC MDI 应用程序中。每当我关闭包含嵌入式 VLC 播放器的子框架时,都会弹出一个带有以下消息的消息框“遇到不正确的参数”。如果我在弹出此消息框后关闭应用程序。它没有关闭。该应用程序进入后台,然后我必须转到任务管理器并终止该应用程序。 这仅在发布版本中发生。我在调试版本中从未遇到过这个错误。 请告诉我如何解决这个问题。

【问题讨论】:

【参考方案1】:

“遇到不正确的参数”会在您尝试访问已定义但不属于当前范围的控件时弹出。例如,如果您有多个表单/视图并尝试从另一个窗体/视图访问控件。

我会看:

BEGIN_MESSAGE_MAP

,

DoDataExchange

以此类推,并检查每个ID是否在当前页面/视图/表单/对话框的范围内。

【讨论】:

我错过了在 DoDataExchange 中为控件调用 DDX_Control()。当我在控件上调用 SetWindowTextA (SetWindowText) 时,会产生消息“遇到不正确的参数”..【参考方案2】:

对不起,我解决了这个问题。我在我的应用程序中围绕 libmysql 编写了包装类。问题是由于我的包装类中发生了一些内存泄漏。

【讨论】:

以上是关于MFC MDI - “遇到不正确的论点”的主要内容,如果未能解决你的问题,请参考以下文章

混合 mfc 对话框和 mdi 项目的调试构建崩溃

MDI 应用程序 MFC 中文档的多个视图

MFC - 当最大化子窗口的标题很长时,MDI 主框架标题被截断

保存工作区 MFC C++ MDI

使用 MFC 功能区升级 MDI 应用程序

mfc中MDI模式下实现单文档多视图多窗口