2009-02-05 132 views
1

我在Vista上使用VS 2008开发了一个功能区应用程序。它在Vista上正常工作。我静态链接MFC,以便我可以在XP上运行它。运行Windows XP MFC功能区应用程序“遇到不正确的参数”

但是,当我在XP上运行它时,它会弹出一个对话框,提示“所需的资源不可用”。 后来,如果我在这个对话框上按OK,它会提出另一个说“遇到不合适的论点”。很多这样的(“遇到......”)对话框(一个接一个地)跟随,直到我从任务管理器中终止它。

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

?????

+0

@Ron,我认为“我尝试在XP系统上安装MFC功能包,但它失败了三次。”非常重要,足以证明你有问题,而不是作为对答案的评论。我认为这会回答你的问题,因为没有安装功能包,你的软件将如何运行? – paxdiablo 2009-02-05 04:31:52

+0

我假设你实际上正在谈论VC2008功能包。你应该试图安装它还是可再发行组件包。该功能包是VC的补充,这些可再发行包应该发送给您的应用的用户。 – paxdiablo 2009-02-05 04:39:51

回答

0

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

我在更新功能区栏控件(ON_UPDATE_COMMAND_UI)时调用了GetDC(),但尚未发布它。使用ReleaseDC发布它(..)解决了问题。

感谢您的回复。

0

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

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

相关问题