1 Créez une nouvelle bibliothèque de classes MyTestDLL
2 Cliquez avec le bouton droit sur le projet "MyTestDLL"-"Propriétés-"Générer-"Cochez "S'inscrire à COM Interop"
3 Ouvrez le fichier AssemblyInfo.cs et modifiez [assembly: ComVisible(true)]
4 Ouvrez l'outil d'invite de commande de Visual Sutdio 2008, entrez guidgen.exe, sélectionnez DEFINE_GUID et cliquez sur "Nouveau GUID".
5 codes
1. Chaque nom de classe correspond à un nom d'interface. Le nom de l'interface est le nom de la classe plus un I majuscule.
2. La méthode déclarée dans l'interface doit utiliser l'attribut [DispId(n)]
3. La classe doit avoir un constructeur sans paramètre
Code
utiliser le système ;
en utilisant System.Collections.Generic ;
en utilisant System.Linq ;
en utilisant System.Text ;
en utilisant System.Runtime.InteropServices ;
espace de noms MyTestDll
{
//Le Guid ici est généré à l'étape 4.
[Guid("FFA4B191-FB5B-4dd5-B7B1-B2F32BF6F1FF")]
interface publique IMyTestDll
{
[IDDisp(0)]
chaîne GetAbout();
}
classe publique Test1:IMyTestDll
{
Résumé de la chaîne privée ;
publicTest1()
{
résumé = "C'est mon premier test";
}
chaîne publique GetAbout()
{
récapitulatif de retour ;
}
}
}
6 Générer un projet
code de test asp
<%
Dim o
Définir o = Server.CreateObject("MyTestDll.Test1")
Réponse.Écrire o.GetAbout()
Définir o=Rien
%>
Astuce : Si vous souhaitez utiliser le composant COM que nous avons développé en C# sur d'autres ordinateurs, vous devez également l'enregistrer auprès de regasm.
La méthode est :
Tout d’abord, copiez les fichiers du répertoire binDebug sur l’ordinateur cible, puis ouvrez l’outil d’invite de commande et saisissez :
regasm Le répertoire/filename.dll que vous avez copié dans /tlb f:/dll/filename.tlb /codebase
Il peut être exécuté sur cet ordinateur.
Références :
http://topic.csdn.net/u/20080625/13/0294fe91-200c-4939-b36b-c9a2c6781354.html
http://topic.csdn.net/t/20060314/15/4613620.html
http://cplus.e800.com.cn/articles/2009/211/1234338268521_3.html
http://topic.csdn.net/t/20020712/10/868557.html
http://www.itzhe.cn/news/20071123/21768.html
http://www.cnblogs.com/illele/archive/2007/10/25/937050.html
-