Créer un vrai ocx en dotnet

0/5 (8 avis)

Vue 11 131 fois - Téléchargée 873 fois

Description

A ma connaissance, il n'est pas possible de créer un vrai Ocx directement en DotNet : j'entends par "vrai" Ocx un contrôle ActiveX que l'on peut insérer partout, exactement comme ceux que l'on faisait par exemple en VB6. Par contre on peut créer une dll ActiveX en DotNet, qui ne pose pas de difficulté à être intégrée dans un projet VB6, mais guère plus : elle n'a pas d'interface utilisateur, et ne peut donc pas s'insérer dans l'ensemble des conteneurs ActiveX, qui sont innombrables. La solution est donc là : il suffit de faire un Ocx en VB6 qui utilise notre dll ActiveX en DotNet, c'est tout !

Voici les étapes pour y arriver sans problèmes (cf. doc.) :

- Utiliser le modèle "Classe COM" (template) pour VB 2008
- Adapter votre projet pour en faire une dll ActiveX en DotNet
- Créer en VB6 un Ocx utilisant la dll ActiveX en DotNet
- Utiliser l'Ocx en VB6 : ClientVB6

Source / Exemple :


Cf. zip.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
2 janv. 2010 à 12:51
bon sans vouloir donnée l'impression d'insister il reste les version express qui cible d'ailleurs le framework 2.0 a la demande je vais regarder par curiosité la procedure demain dans la journée merci pour le lien qui semble relativement bien instructif.
Pour ma part si le problème était recurant je me limiterais a créer un template dans VS et la question serait bouclé sur la "difficulté" repetitive avec du CodeDom + T4
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
2 janv. 2010 à 10:26
Bon voici mes conclusions concernant le "Interop Forms Toolkit" : on peut donc créer des contrôles ActiveX avec interface en DotNet (COM Visible Interface), puisque l'article sur CodeProject montre comment le faire. Mais il y a un "mais" : le toolkit n'est disponible que pour Visual Studio 2005 : si on installe InteropFormToolsInstaller.msi avec VS 2008, on peut effectivement faire fonctionner la démo (elle montre comment afficher une feuille DotNet depuis VB6, et aussi des contrôles telles qu'une barre de statut et une barre d'outil en DotNet avec des événements gérés en VB6, pas mal, donc. Mais je n'ai pas vu comment faire un vrai ocx en DotNet (que l'on pourrait utiliser en Delphi NeoBook par exemple). Si quelqu'un arrive à faire fonctionner le toolkit en VS 2008, qu'il n'hésite pas à en faire profiter les autres, les explications sont ici :
http://blogs.msdn.com/vbteam/archive/2008/03/05/interopforms-toolkit-visual-studio-2008-edition.aspx
mais alors bon courage !!! cela m'à l'air tout de même extrêmement compliqué (plus compliqué que ma solution en tout cas ; pourquoi ne pas avoir fait un toolkit pour VS 2008 tout simplement ?). Moralité : l'interopérabilité m'a l'air beaucoup compliqué que de franchement migrer en VB 2008, n'est-ce pas ?
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
8 déc. 2009 à 08:22
J'avais besoin de faire un controle ActiveX pour mon logiciel IAVB (pour être utilisé en Delphi-NeoBook) et je n'avais pas envie de refaire du VB6, d'où la source. Mais si on peut faire l'ocx directement en DotNet, c'est encore mieux (je vais tester dès que possible).
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
7 déc. 2009 à 18:35
mouais a la rigueur pourquoi on code ca avec du vb6 dans ce cas la ?
Vu qu'on peux séparer le build en .net, il est possible de compiler dans le même assembly du C#, du C++ CLI et du C++ natif
pourquoi utiliser un runtime dont un peux se passé et qui commence a se faire plus que vieux ?

Autant ton code est fort intéressant est bien expliqué, autant la régression dans la techno est difficilement compréhensible, après tout tout l'ocx aurait pu être fait en VB6
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
7 déc. 2009 à 11:46
Dans ton 1er lien, effectivement, ça à l'air de faire un vrai ocx, à tester !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.