好吧,我面临一个奇怪的问题。我在我的机器上开发了一个示例MFC功能区应用程序 - Windows 7,使用Visual Studio 2008.当我复制将.exe粘贴到我的笔记本电脑上并运行应用程序时,我没有看到功能区菜单(实际上应用程序没有菜单现在。)
我尝试使用进程监视器查找每种情况(在我的工作机器和笔记本电脑上)加载的.dll,但我无法找到可能缺少的内容。任何帮助将不胜感激。
编辑1 -
好的,谢谢你的回复。这个问题取得了一些进展
我将我的IDE更改为VS 2010.功能区已手动编码,我想出是否可以将其添加为资源,问题可能会解决。 VS 2008没有选择添加功能区作为资源的选项。
我安装了VS 2010 Service Pack Redistributable X86 / X64,具体取决于机器是32位还是64位。
我从VS 2010构建了一个新的“ribbontest.exe”应用程序,并将其部署在我将测试我的实际应用程序的其他计算机上。 “ribbontest.exe”的功能区加载没有任何问题。
当我部署我的应用程序并运行它时,首先旧的菜单栏加载一两秒钟,然后功能区闪烁并消失。
我指的应用程序的一点历史 - 最初我的应用程序有菜单栏视图。我按照这篇文章http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c14929/MFC-Feature-Pack-An-Introduction.htm来容纳一个功能区。
有什么建议吗?
答案 0 :(得分: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 / ...的用户自定义。但是如果你改变你的应用程序,那些设置就不一定会匹配了,你最终可能会得不到正确显示的东西。
答案 1 :(得分:0)
确保在目标计算机上下载并安装Visual C ++ Redistributable Runtime:http://www.microsoft.com/en-us/download/details.aspx?id=29
或者类似的东西。确保您具有正确的体系结构(x86 / x64),并确保它与您编译的Service Pack版本匹配。
答案 2 :(得分:-1)
乔是对的:您需要可再发行。
Joe是对的:您无法在32位计算机上运行64位程序。
以上所有内容都将由系统指示(缺少DLL,配置不正确或64/32位差异)
Joe是对的:您的应用程序必须针对特定的最低Windows版本和Service Pack进行构建。
除了Joe的帖子,你必须运行发布版本而不是调试版本。 如果满足所有这些要求并且您仍然遇到此问题,请尝试静态链接MFC并查看问题是否仍然存在。