2010-12-12 19 views
1

J'ai une application console C++ qui a une variable, disons, vardata. Je veux que mon application vb.net accède au contenu de vardata. Je pensais que je peux le faire en sauvegardant vardata dans le presse-papier et vb.net devrait obtenir le texte du presse-papiers. Le problème est que le contenu de vardata change 150 fois/seconde et il me manque beaucoup de changements lorsque l'application vb.net essaie d'obtenir du texte dans le presse-papier. Y at-il une fonction prête que je peux utiliser pour enregistrer les données dans un espace mémoire (côté C++) et y accéder à partir de mon application vb.net (côté vb.net).Interprocess Communication entre les applications C++ et vb.net

Merci à l'avance

Répondre

1

Vous devez modifier l'application VB dans une bibliothèque et la charge que dans votre processus de C++. Il y a plusieurs façons de transmettre les données; les plus simples pourraient être d'utiliser C++/CLI (en C++) ou de créer un objet COM (en VB).

3

Très malheureux nombre. Le partage de mémoire ne va pas non plus le résoudre, votre programme VB.NET perd facilement l'accès au CPU pendant 35 msec ou plus. Mises à jour manquantes Et vous vraiment ne veulent pas brûler les cycles pour essayer de suivre, l'interrogation est fugly.

L'autre option consiste à utiliser une socket ou un tube nommé. Vous ne perdrez aucune donnée et ne brûlerez pas de cycles. Un cas de coin est que votre programme C++ pourrait s'enliser si votre programme VB.NET n'est pas réactif. Gardez à l'esprit que l'œil humain ne peut pas percevoir des mises à jour plus rapides qu'environ 30 fois par seconde. S'il s'agit d'une exigence d'interface graphique, 150 mises à jour par seconde sont inutiles et peuvent geler votre interface graphique.