プロジェクトのすべてのリソースを繰り返し処理し、基本的に名前を出力する必要があります。私はこれをVBで行いました。しかし、私は、My.Resources.ResourceManagerに相当するものがVC++であることを理解できません。Visual C++のMy.Resourcesに相当するものは何ですか?
ここに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);
これを理解してください。あなたのリソースを一致させるタイプとRESOURCEIDを変更する必要があります
HRSRC hResInfo = FindResource(hInstance, MAKEINTRESOURCE(resourceId), type);
HGLOBAL hRes = LoadResource(hInstance, hResInfo);
LPVOID memRes = LockResource(hRes);
DWORD sizeRes = SizeofResource(hInstance, hResInfo);
:
これは、特定の答えではないが、 'My'名前空間が' Microsoft.VisualBasic'アセンブリで定義されています。それへの参照を追加すると、その名前空間にアクセスできるはずです。 –
どうすればその参照を追加できますか?私は基本的に論理的に思い付くことをすべて試してきたからです。 –
これはC++/CLIプロジェクトですか、完全に管理されていないC++ですか? –