1

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

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

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

???

4

2 回答 2

0

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

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

于 2009-02-05T04:21:18.303 回答
0

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

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

感谢所有回复。

于 2009-02-06T10:15:12.050 回答