Laden...

Ressourcendatei laden...

Erstellt von Stu42 vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.525 Views
S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 15 Jahren
Ressourcendatei laden...

Hallo,

ich habe eine Ressourcendatei in der ein Image ist.

Nun will ich diese Laden. Das würde ich in C# wie folgt machen:

Image i = Namespace.Ressourcendatei.MeinBild;

Nun hab ich aber nen C++ Projekt und da geht diese Schreitweise natürlich nicht.

Wie würde man denn ohne "einfaches draufzugreife", also durch die gegebenen Ressourcenklassen, auf einkompilierte Ressoucendatei zurgreigen?

Gruß Stu

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Stu42,

==> ResourceManager-Klasse

Das würde ich in C# wie folgt machen: Image i = Namespace.Ressourcendatei.MeinBild;

Das hat nichts mit C# zu tun, sondern nur mit den Klassen, die VS generiert.

herbivore

S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 15 Jahren

Hatte ich auch schon probiert, dann mache ich aber etwas falsch.

Meine Ressourcendatei heißt "UI.resx" und ist in einem Unterordner.

Nun sage ich:

ResourceManager ^ rm = gcnew ResourceManager("UI",Assembly::GetExecutingAssembly());

Dann will ich das Bild laden, also:

Image::FromStream(rm->GetStream("MeinBild"));

Daraufhin bekomme ich aber eine TargetInvokationException.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Stu42,

bei TargetInvokationException interessiert nur die InnerException.

herbivore

S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 15 Jahren

Ok, die InnterException der TargetInvocationException ist:

{"Für die angegebene Kultur oder die neutrale Kultur konnten keine Ressourcen gefunden werden. Stellen Sie sicher, dass UI.resources beim Kompilieren richtig in die Assembly MeinProject eingebettet wurde, oder dass die erforderlichen Satellitenassemblys geladen werden können und vollständig signiert sind."}

Heißt also meine Resource wurde nicht einkompiliert?

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Stu42,

ja, sieht so aus. Die .resx- und die .resource-Dateien kannst du zur Laufzeit vergessen. Die braucht man nur zur Compile-Zeit.

herbivore

S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 15 Jahren

Ja aber wie gebe ich denn mein Bild aus der Recourcendatei zurück?

Wie oben beschrieben, in C# mit Namespace.Ressourcendatei.MeinBild.

Das muss doch in C++ auch gehen. Ich habe eben geschaut was der Disigner für einen Code für die Ressourcen-Properties generiert, Unzwar:

RessourceManager.GetObject.

D.h also meine Resourcen werden nicht geladen. Aber warum nicht?

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Stu42,

ich denke mal, du solltest dir das nochmal in Ruhe angucken: Ressourcen in Anwendungen.

herbivore