À l'aide de DLLImport pour importer une classe
J'ai une classe de la bibliothèque:
Par exemple:
namespace foo {
public class baa {
/* ... */
}
}
comment puis-je les importations de la baa
classe à partir de la dll? il est possible?
[DllImport(DllName)]
public extern ?? foo() ??
Merci à l'avance.
Quelle langue est-ce? Avec des parenthèses dans le nom de la classe, ce n'est pas couramment utilisé.
Ow,désolé. Il s'agit de C#. les parenthèses était la digitalisation d'erreur.
Vous n'avez pas besoin DllImport à utiliser .NET de l'assemblée... il est uniquement nécessaire lorsque vous souhaitez utiliser une DLL non managée
Ow,désolé. Il s'agit de C#. les parenthèses était la digitalisation d'erreur.
Vous n'avez pas besoin DllImport à utiliser .NET de l'assemblée... il est uniquement nécessaire lorsque vous souhaitez utiliser une DLL non managée
OriginalL'auteur The Mask | 2011-11-07
Vous devez vous connecter pour publier un commentaire.
Qui ne va pas au travail. Dll non managées de l'exportation d'un
C
interface, pas unC++
. Et pour géré Dll C# ou C++/CLI) vous simplement n'avez pas besoin DllImport.Seulement les fonctions qui sont importés dans une classe statique, j'ai peur.
OriginalL'auteur Henk Holterman
DllImport
est utilisée uniquement lorsque vous souhaitez appeler non géré fonctions à partir d'un non géré bibliothèque (comme on écrit en C++).Lorsque vous avez géré .NET de l'assemblée il vous suffit de l'ajouter en tant que référence à votre projet et à les utiliser.
Donc, en supposant que vous avez un .NET la bibliothèque de la classe contenant la classe suivante:
et puis vous avez un autre projet qui nécessite l'utilisation de cette assemblée, vous consultez les Références nœud dans l'Explorateur de solutions et d'Ajouter une Référence à l'assembly donné. Ensuite vous apporter de l'espace de noms dans le champ d'application:
et d'instancier la classe:
il ressemble à un scénario mal... mais j'ai vraiment besoin de l'utiliser.
OriginalL'auteur Darin Dimitrov
C'est un C++ standard d'exportation mécanisme qui ne fonctionne qu'avec C++. Vous ne pouvez pas importer à partir de C# directement. Il existe des solutions de contournement, comme l'exportation d'un type géré à partir d'un MC++ assemblée, utiliser un wrapper géré, à l'aide de COM et un de type bibliothèque ou quelque chose comme ça, mais vous ne pouvez pas utiliser la même importer/exporter mécanisme des applications C++ utilisation.
declspec(dllexport)
, etdeclspec
n'est pas standard.Eh bien, je suppose que c'est de quoi il parlait... je veux dire vous avez un peu de l'espoir c'est de quoi il parlait.
OriginalL'auteur kprobst