2010-08-24 4 views
1

Nous utilisons un DLLs comme:Comment modifier les DLL

[DllImport("DemoExport.dll")] 
    public static extern string GetDBConnection(string sDBName); 
    [DllImport("DemoExport.dll")] 
    public static extern int CreateEmptyDBFromDB(string SourceDBName, string DestinationDBName); 
    [DllImport("DemoExport.dll")] 

Maintenant, nous voulons ajouter une nouvelle méthode dans la même configuration. ? Nous sommes à la recherche qui est-il possible de mettre en œuvre la méthode dans DemoExport.dll Ainsi, nous pouvons utiliser la méthode dire DemoMethod() comme:

[DllImport("DemoExport.dll")] 
    public static extern void DemoMethod(); 

Il pourrait ressembler à une question folle, mais nous avons vraiment besoin mettre en œuvre cette méthode, plus tard, nous pouvons utiliser la même chose.

De plus, si ci-dessus n'est pas possible, alors comment créer une nouvelle DLL ou dire comment utiliser DllExport qui n'est pas disponible en C#. Ainsi, laterly, tout le monde peut utiliser la méthode avec l'attribut

[DllImport("dllname.dll")] 
publis statis extern void mymeth(); 
+1

Question étrange. Il suffit de modifier le code pour la DLL. –

Répondre

1

Je ne suis pas sûr que je vous ai bien compris, mais que vous voulez ajouter à la méthode existante dll. Si j'ai raison, ce n'est pas possible. d'autres options sont:

  • trouver des sources de cette dll, méthode ajouter et recompiler
  • Créer un nouveau dll et mettre en œuvre la méthode là-bas et utiliser nouveau le nom dans DllImport
+0

merci pour la clarification, j'ai édité la question s'il vous plaît vérifier maintenant –

3

Vous ne pouvez pas utiliser C# pour ajoutez une méthode à un * .dll pré-compilé existant.

Vous devrez trouver la source de la DLL, écrire votre méthode, recompiler, puis utiliser cette nouvelle méthode à partir de C#.

EDIT

Je ne suis toujours pas sûr de ce que vous demandez dans votre mise à jour. Si vous voulez écrire une nouvelle méthode qui peut être utilisée par d'autres utilisateurs C#, vous n'avez rien de spécial à faire avec les attributs. Il suffit d'écrire une méthode publique sur une classe publique. Après cela, n'importe quel client .NET peut ajouter une référence d'assembly à votre classe et utiliser votre méthode.

Si vous souhaitez qu'un client Windows puisse utiliser votre code, vous pouvez rechercher COM Interop.

Si vous essayez toujours d'utiliser une DLL C/C++, ma réponse originale est toujours valide.

+0

Merci et désolé de ne pas bien écrire en raison de la même que vous ne pouvez pas comprendre mon problème. Laissez-moi essayer de représenter le même: Trois méthodes sont dans un code non managé nous utilisons les DLL Maintenant, nous utilisons les fonctions comme indiqué dans mon code original. Maintenant, je dois ajouter une nouvelle méthode cette nouvelle méthode utilisera la méthode ci-dessus trois dans mon projet de bibliothèque de classes. C'est parce que nous devons fournir la DLL de ce projet à un autre projet. Que faire maintenant? –

Questions connexes