我需要迭代项目中的所有资源,并基本上输出它们的名称。这是我用VB做的。但是我不知道VC++中My.Resources.ResourceManager的等价物是什么。
这是VB代码。
Dim objResourceManager As Resources.ResourceManager = My.Resources.ResourceManager
Dim objResourceSet As Resources.ResourceSet = objResourceManager.GetResourceSet(CultureInfo.CurrentCulture, True, True)
Dim iterator As IDictionaryEnumerator = objResourceSet.GetEnumerator()
Private Sub go()
Dim s As String = iterator.Key
Debug.WriteLine(s)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If iterator.MoveNext Then
go()
Else
iterator.Reset()
If iterator.MoveNext Then
go()
Else
Throw New Exception("No elements to display")
End If
End If
End Sub这是我在VC++的距离。
private:
Resources::ResourceManager^ rmgnr;
Resources::ResourceSet^ rSet;
public:
Form1(void)
{
rmgnr = gcnew System::Resources::ResourceManager(L"Resources ProjectCPP",Reflection::Assembly::GetExecutingAssembly());
//This is the problem as I can't find the equivalent in c++
rSet = rmgnr->GetResourceSet(CultureInfo::CurrentCulture,true,true);请帮我弄清楚这件事。
发布于 2011-07-01 06:36:48
我想你只是想:
rmgnr = gcnew System::Resources::ResourceManager(GetType());发布于 2011-07-01 05:04:45
对于非托管C++,您可以使用类似以下内容:
HRSRC hResInfo = FindResource(hInstance, MAKEINTRESOURCE(resourceId), type);
HGLOBAL hRes = LoadResource(hInstance, hResInfo);
LPVOID memRes = LockResource(hRes);
DWORD sizeRes = SizeofResource(hInstance, hResInfo);您需要更改类型和resourceId以匹配您的资源。不确定它是图像还是图标,也不确定是哪种资源,但您可以使用以下内容:
FindResource(hInstance, MAKEINTRESOURCE(bitmapId), _T("PNG"));对于托管C++,请尝试执行类似以下操作:
Bitmap *MyBitmap;
String *Msg;
Reflection::Assembly *MyAssembly;
IO::Stream *ResourceStream;
MyAssembly = System::Reflection::Assembly::GetExecutingAssembly();
ResourceStream = MyAssembly->GetManifestResourceStream(ImageName);
if (ResourceStream != NULL)
{
MyBitmap = new Bitmap(ResourceStream);
Msg = String::Format("GetIcon: {0}, OK", ImageName);
}
else
Msg = String::Format("GetIcon: {0}, Failed", ImageName);
// MyBitmap countains your resource您需要将ImageName替换为您试图获取的资源的名称。再说一次,我假设这是你想要获取的图片资源。
https://stackoverflow.com/questions/6541016
复制相似问题