2010-08-11 10 views
0

Lorsque nous définissons une interface COM dans MIDL (Microsoft Interface Decription Language), nous devons utiliser les types de données compatibles avec oleautomation. Ces types peuvent être reconnus par les langages de communication COM.Comparaison des types de données compatibles avec oleautomation et CTS

Soudainement, le .NET CTS (Common Type Specification) a flashé dans mon esprit. Le CTS est le sous-ensemble minimal de types que tout langage compatible .NET doit respecter.

Les types compatibles CTS et oléagineux ne sont-ils pas très similaires? Est-ce que le CTS évolue à partir de types compatibles avec oleautomation?

Merci beaucoup.

Répondre

1

Eh bien, pas vraiment. L'ensemble des types compatibles avec oleauto est plutôt restrictif donc il n'est pas particulièrement surprenant qu'il y ait un mapping one-to-one avec des types gérés (value). Mais les types oleauto importants comme VARIANT, SAFEARRAY, IDispatch * et HRESULT n'ont pas de mappage direct. Qu'ils peuvent réellement être mappés à, respectivement, objet, System.Array, __ComObject et System.Exception est grâce à l'interop COM intégré dans le CLR. C'est un code dur et froid qui n'est en aucune façon prescrit par le CTS.

+0

Merci pour votre réponse. Je ne veux pas dire cartographie entre ces deux types de schéma. J'ai juste le sentiment que les deux sont faits dans le même but. Être une base commune sur laquelle la communication entre différentes langues pourrait être possible. Ne sont-ils pas? – smwikipedia

+0

Oui, l'ensemble de type oleauto a été spécialement conçu pour permettre aux langues d'interagir avec un comportement bien défini. Tout comme CTS. –

+0

Merci Hans. Et merci d'avoir répondu à mes autres questions. ;) – smwikipedia