FileNotFoundException ResourceManage::GetString C++/CLI



我有一个启用CLR的MFC DLL,并在VS2010 SP1中使用。net v4.0。我添加了一个名为ReportStrings的新托管资源文件。到项目的根目录。我使用下面的代码来访问资源。无论我在ResourceManger构造函数中放入什么。当rmResources->GetString(sKey)被调用时,我得到一个FileNotFoundException。异常提示"找不到文件'Report.resources'"。我在我的申请表上搜索了关于报告的任何参考资料。资源和没有找到任何。如有任何帮助,我将不胜感激。

谢谢,Josh

public ref class ResourceGetter
{
  static ResourceManager^ rmResources = gcnew ResourceManager("Report.ReportStrings", Assembly::GetExecutingAssembly());
  public:
    static String^ GetResource(String^ sKey)
    {
      String^ sReturn = nullptr;
      String^ sTheme = String::Empty;
      try
      {
        sReturn = rmResources->GetString(sKey);
      }
      catch (Exception^ ex)
      {
        ex;
      }
      return (sReturn == nullptr) ? "[" + sKey + " not found]" : sReturn;
    }
};

好的,在创建了几个测试项目并从头开始重新创建我的应用程序项目之后,我似乎已经找到了问题。如果我在主文件的应用构造函数中初始化资源,一切都会正常工作。例如,我的项目名为Report,因此我将初始化代码添加到Report.cpp文件中的CReportApp构造函数中,一切正常。谢谢你的帮助,汉斯·帕桑特。我的代码如下:

ResourceGetter.h

#pragma once
using namespace System;
using namespace System::Resources;
public ref class ResourceGetter
{
  static ResourceManager^ rmResources = nullptr;
  public:
    static ResourceGetter()
    {
    }
    static void Initialize()
    {
      if ( rmResources == nullptr )
      {
        rmResources = gcnew ResourceManager("Report.ReportStrings", Assembly::GetExecutingAssembly());
        ResourceProxy::Initialize(gcnew Mnc::Utilities::GetResourceDelegate(&ResourceGetter::GetResource));
      }
    }
    static String^ GetResource(String^ sKey)
    {
      String^ sReturn = nullptr;
      try
      {
        if ( rmResources != nullptr )
          sReturn = rmResources->GetString(sKey);
        else
          System::Diagnostics::Debug::WriteLine("Failed to retrieve resource (" + sKey + "): Returned null.");
      }
      catch (Exception^ ex)
      {
        ex;
      }
      return (sReturn == nullptr) ? "[" + sKey + " not found]" : sReturn;
    }
};

Report.cpp

CReportApp::CReportApp()
{
  ResourceGetter::Initialize();
}

相关内容

  • 没有找到相关文章

最新更新