A propos des pointeurs VB6 <--> C

Résolu
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008 - 24 août 2008 à 12:48
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008 - 26 août 2008 à 12:15
Bonjour :)

Je vous présente mon problème :

Je code un MMORPG. Le probleme c'est que le serveur aussi est en VB >< ^^ donc du coup je voudrais faire un autre programme, lui codé en C, qui servira a relayer le serveur VB dans l'envoi de packets. Seulement, il faut bien que les deux applications communiquent pour savoir quoi faire ^^ Donc j'aurais voulu savoir comment faire pour récuperer une variable enregistré par le serveur en VB, dans le programme en C ( surement via les pointeurs ). Est-il possible de faire la meme chose coté VB6 : recuperer une variable enregistrée par le programme en C via un pointeur ?

Voila :)

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 août 2008 à 11:24
Non,

Le programme vb communique directement avec le programme C par l'intermediare des API.

Regardes par exemple les api windows comment c'est gére (exemple construction de controle avec les api de dessin windows)
en general tu les declares dans un module avec les structures qui vont bien.
et ensuite tu les appelles comme des fonctions vb dans ton code.
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
24 août 2008 à 16:57
Salut,

Regardes cet article sur les API qui peut te guider, les API windows etait en C, tu dois pouvoir gerer ton probleme.

Le mieux si ton projet n'est pas trop avancé c'est de faire en c# ou en vb.net ;-)
Pour eviter d'avoir 2 langage dans ton programme (vb6 n'etant plus supporté par microsoft)

Bon courage
0
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008
26 août 2008 à 10:05
Donc la manip a faire, c'est prendre une API qui stocke la variable dans une case mémoire, et envoi cette adresse au programme de relais en C?
0
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008
26 août 2008 à 12:13
Oui, mais le probleme c'est que l'interet du biserveur, c'est d'alleger les programmes, et repartir la charge, et faire du multitache :

Exemple :

- VB -
Temps 1- Calcul de la vie du joueur
Temps 2- Enregistrement dans une variable de la vie du joueur
Temps 3- Calcul du mana du joueur
Temps 4- Enregistrement dans une variable du mana du joueur

- C -

Temps1 - Rien a faire, variables vides
Temps2 - Variables en écritures par le programme VB
Temps3- Envoi de la variable Vie du joueur
Temps4- Variable en écriture
Temps5- Envoi de la variable Mana.

Les deux programmes travaillent en simultané ainsi. J'ai représenté par TempsX le déroulement de l'execuion du programme. TempsX en VB et en C correspondent à la même miliseconde dans l'execution du code.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008
26 août 2008 à 12:15
Oups j'en ait oublié une partie :

Avec une api c'est :
-VB -
Temps 1- Calcul de la vie du joueur
Temps 2- Enregistrement dans une variable de la vie du joueur
Temps 3- Appel de l'API pour envoi de la variable
Temps 4- Calcul du mana du joueur
Temps 5- Enregistrement dans une variable du mana du joueur
Temps 6- Appel de l'API pour l'envoi de la variable.

Programme VB fait deux actions de plus, ce qui le freine dans ses calculs, le joueur attend donc plus longtemps la variable qu'il doit recevoir, avec beaucoups de joueurs, bah ça s'appele du lag :)
0
Rejoignez-nous