0

好吧,我面临一个奇怪的问题。我在我的机器上开发了一个示例 MFC 功能区应用程序 - Windows 7 和 Visual Studio 2008。当我将 .exe 复制粘贴到我的笔记本电脑并运行应用程序时,我看不到功能区菜单(实际上应用程序没有现在菜单)。

我尝试使用进程监视器查找在每种情况下(在我的工作机器和笔记本电脑上)加载的 .dll,但我无法找到我可能丢失的内容。任何帮助将不胜感激。

编辑 1 -

好的,谢谢您的回复。在这个问题上取得了一些进展

  1. 我将 IDE 更改为 VS 2010。功能区是手动编码的,我想知道是否可以将其添加为资源,也许问题会得到解决。VS 2008 没有添加功能区作为资源的选项。

  2. 我安装了 VS 2010 Service Pack Redistributable X86/X64,具体取决于机器是 32 位还是 64 位。

  3. 我从 VS 2010 构建了一个新的“ribbontest.exe”应用程序,并将其部署在我将测试我的实际应用程序的其他机器上。“ribbontest.exe”的功能区加载没有任何问题。

当我部署并运行我的应用程序时,首先旧菜单栏会加载一两秒钟,然后功能区会闪烁并消失。

我所指的应用程序的一点历史 - 最初我的应用程序有菜单栏视图。我按照这篇文章http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c14929/MFC-Feature-Pack-An-Introduction.htm 来容纳一个功能区。

有什么建议么?

4

3 回答 3

2

设置“路径”中很可能存在冲突。在您的InitInstance()处理程序中,您有这样的声明:

// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
SetRegistryKey(_T("yourappname"));

如果您尚未更改该名称,请执行此操作。如果您这样做了,regedit.exe请在目标计算机上打开并删除下面的整个密钥HKCU\Software\yourappname,然后重试。

MFC 将 Ribbons/Menus/... 的用户自定义项存储在该键下。但是,如果您更改了您的应用程序,这些设置不一定会再匹配,您最终可能会出现无法正确显示或根本不显示的内容。

于 2012-05-12T08:39:18.737 回答
0

确保在目标计算机上下载并安装 Visual C++ Redistributable Runtime:http: //www.microsoft.com/en-us/download/details.aspx?id=29

或者,类似的东西。确保您的架构 (x86/x64) 正确,并确保它与您编译的服务包版本匹配。

于 2012-05-11T20:17:22.240 回答
-1

Joe 是对的:你需要可再分发的。

乔是对的:你不能在 32 位机器上运行 64 位程序。

以上所有情况都会由系统指示(缺少 DLL、配置不正确或 64/32 位差异)

Joe 是对的:您的应用程序必须针对特定的最低 Windows 版本和服务包构建。

除了 Joe 的帖子之外,您还必须运行 release build 而不是 debug build。如果满足所有这些要求并且您仍然遇到此问题,请尝试静态链接 MFC 并查看问题是否仍然存在。

于 2012-05-12T12:02:18.450 回答