我有一個啓用了CLR並在VS2010 SP1中使用.Net v4.0的MFC DLL。我已將名爲ReportStrings.resx的新託管資源文件添加到項目的根目錄中。我正在使用下面的代碼來訪問資源。不管我放在ResourceManger構造函數中。當調用rmResources-> GetString(sKey)時,我得到一個FileNotFoundException。例外說「找不到文件」Report.resources「。」我搜索了我的應用程序對Report.resources的任何引用,但沒有找到任何引用。任何幫助將gretaly讚賞。FileNotFoundException ResourceManage :: GetString C++/CLI
感謝, 喬希
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;
}
};
運行程序Ildasm.exe,雙擊該清單,並尋找.mresource。它應該是類似於mumble.ReportStrings.resources,其中* mumble *部分不可從您的問題中推測出來。 –
@Hans Passant - 這是我在清單中找到的:「.mresource public Report.ReportStrings.resources」。這也是Debug目錄中已編譯資源的名稱。 – Navcomp
'無法找到文件'Report.resources'是一個錯字或異常實際上是否說'Report.ReportStrings.resource'?我也會避免像這樣初始化rmResources。最好在某些類的構造函數中這樣做,以確保程序集是正確的。 –