Comment puis-je convertir un serveur COM en un ensemble CLR de sorte que je n'ai pas à réécrire quoi que ce soit d'abord.Comment convertir un assemblage COM en un assemblage CLR?
Répondre
J'ai posté ceci ici pour l'OP, comme ils l'ont posté originalement comme un edit to question. Plutôt que de réécrire un serveur COM (écrit en 1992 en utilisant C++/MFC) dans .Net, j'ai décidé de le convertir en un ensemble CLR. Pour prendre un assembly COM (add32.exe) et l'utiliser à partir d'un client .Net, nous devons créer un wrapper appelable. Exécutez tous les outils avec l'invite de commandes Visual Studio (en tant qu'administrateur).
Étape 1: Signer un ensemble COM avec un nom fort
Etape 2: Convertir les définitions trouvées dans une bibliothèque de type COM dans un ensemble CLR
Convertir les définitions trouvé dans une bibliothèque de type COM dans un assembly CLR en utilisant l'outil Tlbimp.exe. La sortie de Tlbimp.exe est un fichier binaire (un assembly) qui contient des métadonnées d'exécution pour les types définis dans la bibliothèque de types d'origine. La sortie est un fichier DLL. Je spécifie un espace de noms afin que nous puissions facilement inclure les métadonnées dans le client COM .Net.
Etape 3: Utilisation Ildasm.exe pour visualiser l'ensemble.
Pour utiliser l'ensemble de CLR, nous de créer une référence dans la solution. Recherchez le fichier dll et ajoutez-le comme référence.
Les clients qui utilisent des objets COM doivent importer des métadonnées en utilisant l'espace de noms créé à l'étape 2.
#using "Add32Pkg";
Ensuite, utiliser la fonctionnalité COM:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Add32Pkg;
namespace TestAdd32
{
class Program
{
[STAThread]
static void Main(string[] args)
{
Add32Server Add32 = new Add32Server();
Add32.Init(201);
}
}
}
- 1. Création d'un assemblage - CLR
- 2. CLR Assemblage avec dll
- 3. enregistrement WindowsBase assemblage SqlServer CLR
- 4. Assemblage CLR pour cryptage/décryptage
- 5. Créer un assemblage CLR et un groupe disponible?
- 6. Comment convertir "ou" en assemblage SPARC?
- 7. Assemblage - Remplacer un mot
- 8. Comment lier une propriété dans un assemblage à une autre propriété dans un autre assemblage
- 9. Créer un assemblage en mémoire
- 10. Comment décharger un assemblage chargé
- 11. Comment marquer un assemblage obsolète
- 12. Assemblage nommé fort nécessaire pour l'interopérabilité COM?
- 13. Ninject Dans un assemblage
- 14. Comment diviser un registre en assemblage?
- 15. comment faire rebondir un char en assemblage
- 16. mon fichier .com n'ouvrira pas le port COM 1, assemblage
- 17. Comment imprimer un DWord dans un assemblage?
- 18. Convertir le programme C en assemblage?
- 19. Convertir C/C++ en 8086/88 Assemblage
- 20. Convertir char en chiffres Assemblage Irvine
- 21. Comment identifier un processus pour un assemblage?
- 22. Convertir le code en assemblage Neon
- 23. Assemblage - Convertir la valeur en ascii
- 24. Assemblage en ligne
- 25. convertir le code C en assemblage
- 26. Un assemblage couvrant plusieurs fichiers
- 27. différence: maven assemblage: assemblage contre assemblage: buts uniques?
- 28. Impossible de CREER UN ASSEMBLAGE dans SQL
- 29. En utilisant al.exe pour signer un assemblage:
- 30. Ecriture dans un fichier txt en assemblage
Est-ce que cela signifiait que une (très bonne, complète) auto-réponse? Parce qu'il manque une question de toute façon! – Widor
C'était ma façon de fournir un document de ce que j'ai fait pour convertir un ensemble COM en un ensemble CLR. Je voulais juste partager avec la communauté. –
C'est bien (et encouragé) - c'est juste '[meilleure étiquette] (http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-those-where-i- Connaissez-la-réponse-avant-de-demander) 'pour poser la question que votre info répond, puis répondez à votre propre question. Cela permet deux choses - d'autres peuvent ajouter des réponses potentiellement meilleures et ceux qui cherchent une réponse peuvent chercher plus facilement. – Widor