2009-04-21 7 views

Répondre

10

Vous devez les inclure dans le projet en tant que ressources, puis y accéder ultérieurement en lisant à partir de la DLL.

Pour les fichiers GIF, vous pouvez simplement les déposer sur les ressources (dans la Projet-> dialogue de propriétés), puis y accéder via

var img = Properties.Resources.GifName; 

Pour les fichiers mp3, vous aurez probablement besoin d'utiliser des ressources intégrées, puis lisez-les comme un flux. Pour ce faire, faites glisser l'élément vers un dossier de votre projet dédié à ces types de fichiers. Cliquez avec le bouton droit sur le fichier dans l'explorateur et affichez le volet des propriétés, puis définissez l'action "build" sur "embedded resource".

Vous pouvez ensuite utiliser du code quelque chose comme ceci (traduction non testée de vb, désolé), pour obtenir la chose en tant que flux. C'est à vous de transformer le flux en quelque chose que votre joueur peut gérer.

using System.Linq; // from System.Core. otherwise just translate linq to for-each 
using System.IO; 

public Stream GetStream(string fileName) { 
    // assume we want a resource from the same that called us 
    var ass = Assembly.GetCallingAssembly(); 
    var fullName = GetResourceName(fileName, ass); 
    // ^^ should = MyCorp.FunnyApplication.Mp3Files.<filename>, or similar 
    return ass.GetManifestResourceStream(fullName); 
} 

// looks up a fully qualified resource name from just the file name. this is 
// so you don't have to worry about any namespace issues/folder depth, etc. 
public static string GetResourceName(string fileName, Assembly ass) { 
    var names = ass.GetManifestResourceNames().Where(n => n.EndsWith(fileName)).ToArray(); 
    if (names.Count() > 1) throw new Exception("Multiple matches found."); 
    return names[0]; 
}  

var mp3Stream = GetStream("startup-sound.mp3"); 

var mp3 = new MyMp3Class(mp3stream); // some player-related class that uses the stream 

Voici quelques liens pour vous aider à démarrer

+0

Il y a un "ResourceHelper" plus complète que je l'utilise. Faites-moi savoir si vous le souhaitez (passez le simplement par un traducteur VB-> C#) –

4

les inclure dans un fichier de ressources (.resx).

1

Vous devez simplement les affecter en tant que ressources. Si vous affichez le panneau Propriétés dans VS, assurez-vous que votre action de construction est définie sur Ressource et que Copier dans le répertoire de sortie est défini sur Ne pas copier. Vous pouvez également gérer les ressources à partir des propriétés du projet dans l'onglet Ressources.

7

Ajoutez-les en tant que ressources intégrées et elles seront compilées dans la DLL.

Commencez par les ajouter au projet, en les faisant simplement glisser vers l'explorateur de solution, puis accédez à leurs propriétés pour modifier leur action de construction en ressources intégrées.

Questions connexes