“遇到一个不正确的论点”运行Windows XP MFC功能区应用程序

时间:2009-02-05 04:11:58

标签: crash ribbon

我使用VS 2008在Vista上开发了一个Ribbon应用程序。它在Vista上运行良好。我静态链接MFC,以便我也可以在XP上运行它。

但是当我在XP上运行时,它会弹出一个对话框,说“必需的资源是不可用的”。 稍后如果我在这个对话框上按OK,它就会出现另一个说“遇到不正当的争论”。许多这样的(“遇到一个......”)对话框(一个接一个)跟随,直到我从任务管理器终止它。

我注意到有趣的是,当我将鼠标指针放在功能区栏上时会发生这种情况。我什么都不做。然后我打开任务管理器,看到使用的内存每秒增加8个字节。最后是上面的场景。

···

2 个答案:

答案 0 :(得分:0)

可能是功能区是Vista中Win32常用控件的一部分(因此在XP下不可用)。换句话说,虽然您已经静态链接了MFC,但可能不是MFC拥有您正在寻找的资源。

制作社区维基,因为我真的不知道这是否正确: - )。

答案 1 :(得分:0)

我的代码中存在导致此问题的资源泄漏。

我在更新功能区栏控件(ON_UPDATE_COMMAND_UI)时调用了GetDC(),但是没有释放它。使用ReleaseDC(..)发布它解决了这个问题。

感谢所有回复。