Nous améliorons une suite de programmes d'acquisition et d'analyse des données des programmes de VB6 à un mélange de VB.NET, VB6 et programmes Matlab. Nous voulons garder le système modulaire (EXEs séparés) afin que nous puissions facilement créer des programmes d'analyse autonomes spécialisés sans devoir constamment mettre à jour une application massive. Nous avons utilisé MBInterProcess pour envoyer des messages entre EXEs lorsque tous les programmes ont été écrits en VB6 et cela a fonctionné parfaitement pour nous (par exemple, pour que l'EXE d'acquisition de données envoie le dernier nom de fichier à un programme d'affichage de données autonome). Malheureusement, cet ActiveX ne peut pas être utilisé dans Matlab ou VB.NET pour recevoir des messages. Nous nous demandons quel est le système de transmission de messages de chaînes le plus simple (pipes, messages enregistrés, etc.) que nous pourrions adopter. Pour le moment, nous ne faisons qu'interroger si un nouveau fichier a été écrit dans un dossier spécifique, ce qui ne peut pas être la meilleure solution. Notre solution idéale ne nécessiterait pas un énorme investissement dans le temps d'apprentissage des nuances de Windows (nous sommes des biologistes, pas des programmeurs à plein temps) et fonctionnerait à la fois dans les versions WinXP et 64 bits de Windows.d'envoyer Simplest messages entre Matlab, VB6 et VB.NET programmes
En réponse aux requêtes, nous avons enveloppé toute la session Matlab dans un programme VB6 qui a le contrôle ActiveX MBInterProcess. Cela fonctionne mais n'est pas une excellente solution pour nous car il nous verrouillera probablement dans WinXP pour toujours (et nous empêchera certainement d'utiliser la version 64 bits de Matlab). La dernière version de Matlab (2009a) peut accéder directement aux fonctions .NET, donc nous supposons qu'une solution pourrait être d'utiliser la bibliothèque .NET pour implémenter des pipes (ou quelque chose de similaire) entre les programmes. Nous souhaitons recréer la syntaxe simple et élégante de MBInterProcess ActiveX et avoir un morceau de code qui écoute un message avec le nom Windows de niveau supérieur de ce programme, puis appeler un fichier m Matlab spécifique, ou une fonction VB.NET, avec les données de chaîne (par exemple, nom de fichier) en tant qu'argument.
Ressemble aux suggestions DDE et COM dans l'article que vous avez lié fonctionnerait également avec VB6. – MarkJ
C'est ma compréhension - je dois admettre que je me suis tenu à l'écart de telles choses de peur de se cogner la tête contre les mystérieuses incantations du compilateur. –