2009-07-15 13 views
2

Ich schreibe eine gemischte C++/CLI-DLL mit verwalteten und nicht verwalteten Klassen. Beide benötigen Zugriff auf Zeichenfolgen und andere Arten von Ressourcen, z. B. Direct3D-Texturen.Hinzufügen von Ressourcen zu einer Visual C++/CLI gemischten DLL

Wie kann man sie am besten in die DLL einbetten? Es scheint, dass es mehrere Möglichkeiten gibt, dies zu tun; .resx (neuer Stil, verwaltet), .rc (alter Stil), der zum Generieren von .resources-Dateien verwendet werden kann und (optional) in die Assembly eingebettet werden kann.

Derzeit verwende ich eine .rc-Datei und :: LoadString(), um meine Strings zu bekommen. Ich habe einen verwalteten Wrapper, um String^-Werte an verwalteten Code zurückzugeben. Und eine ähnliche Methode, um WCHAR * an nativen Code zurückzugeben.

Gibt es einen besseren Weg, dies zu tun? Was sind die Kompromisse? Ich könnte zum Beispiel eine .resx-Datei und die ResourceManager-Klasse für verwalteten Code und eine .rc für native verwenden, aber das bedeutet, dass ich keine Ressourcen teilen kann usw. Gibt es einen empfohlenen Ansatz?

Danke,

Ade

Antwort

1

ich nutze einfach ein .resx und wenn es irgendwelche Strings der native Code muss ich es geschafft, verwenden Sachen aus meinem RESX-Datei zu erhalten und es in eine CString konvertieren auf die nächste Zeile.

Obwohl Sie bereits einen Wrapper haben, um dies zu tun, wäre es noch einfacher.

.rc-Dateien sind so 1997 Mann!

+2

'rc' Dateien sind für die Verwendung in nativen Anwendungen. Sie sind OK. Transistoren sind von 1947, aber sie sind immer noch in Ordnung. –

+0

Ich stimme zu. Wenn ich jedoch die Wahl zwischen 1947 Transistoren, 2009 Transistoren oder beiden (die Größe meines Geräts verdoppeln) hätte, würde ich die 2009 verwenden. – demoncodemonkey

Verwandte Themen