所以我有一个SDI MFC应用程序,可以在Windows XP和Linux上完美运行Server 2003。
我不得不将项目更新到VS 2013,从那时起,应用程序无法正常加载功能区。
我必须将工具包设置为Visual Studio 2013 - Windows XP(v120_xp),以便应用程序甚至可以在XP上加载,但它无法加载功能区。
我已将其缩小到对LoadFromResource()的调用失败(没有太多细节)。由于2003年不再是远程调试器的支持平台,我无法进行太多调查。
我也无法回到2010年,因为该项目利用了v120 CRT的功能,需要进行大量的调整。
这是代码。正如您所看到的那样,它可以创建功能区,但它无法从资源中加载它。
bool ribbonCreatedSuccesfully = ribbonBar_->Create((CWnd*) this);
if (ribbonCreatedSuccesfully)
{
ribbonBar_->RemoveAllCategories();
if (!ribbonBar_->LoadFromResource(IDR_RIBBON1))
{
^ fails here
该应用程序是静态链接的,并且可以在所有后续平台上正常运行(2008,Win7,...)。
我知道要解决这个问题需要很长时间,但我希望有人可能会遇到类似的问题。