calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 décembre 2008
-
24 août 2008 à 12:48
calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 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 ?
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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)
calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 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 :)