Je suis nouveau sur C # et j'essaie d'apprendre à utiliser les DLL. J'essaie d'encapsuler mes objets dans une DLL, puis de l'utiliser dans mon programme.
public class Foo // its in the DLL
{
public int ID;
public void Bar()
{
SomeMethodInMyProgram();
}
}
J'essaie donc de compresser cela dans un DLL mais je ne peux pas, car le compilateur ne sait pas ce que SomeMethodInMyProgram () est.
Je voudrais l'utiliser comme:
class Program // my program, using DLL
{
static void Main(string[] args)
{
Foo test = new Foo();
test.Bar();
}
}
Ajoutez le DLL via l'explorateur de solutions - clic droit sur les références -> ajoutez la référence puis "Parcourir" à votre DLL - alors il devrait être disponible.
Dépend de quel type de DLL. Est-ce intégré à .NET? s'il s'agit de code non managé, voici un exemple, sinon la réponse de Rob fonctionnera.
exemple de dll C++ non managé:
using System;
using System.Runtime.InteropServices;
Vous devrez peut-être utiliser DllImport
[DllImport(@"C:\Cadence\SPB_16.5\tools\bin\mpsc.dll")]
static extern void mpscExit();
ou
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
Ensuite, chacun de ceux-ci est appelé comme ceci:
// a specific DLL method/function call
mpscExit();
// user32.dll is Microsoft, path not needed
MessageBox(new IntPtr(0), "Test", "Test Dialog", 0);
vous devez réellement charger le DLL dans votre application au moment de l'exécution, donc la partie dynamique de la DLL. Vous avez également besoin du fichier d'en-tête qui définit les fonctions du DLL pour que votre compilation sache quelles fonctions ont été définies. Ma connaissance ici est basée sur C++ donc comment cela fonctionne pour C # Je ne suis pas sûr, mais ce sera quelque chose comme ça ...
Je suis en retard à la fête ici, mais je laisse cette réponse à quelqu'un qui se coiffe comme moi. Donc, fondamentalement, je n'ai pas eu le luxe de VS IDE face à ce problème. J'essayais de compiler le code via cmdline en utilisant csc. Pour référencer une DLL, il suffit d'ajouter l'indicateur du compilateur/r: PathToDll/NameOfTheDll vers csc.
La commande ressemblerait à
csc/r: PathToDll/NameOfTheDll/out: OutputExeName FileWhichIsReferencingTheDll.cs
Dans FileWhichIsReferencingTheDll.cs ajoutez using namespace AppropriateNameSpace;
pour accéder aux fonctions (en appelant class.functionName si statique ou en créant un objet de la classe et en appelant la fonction sur l'objet).