See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Multijoueur -> Module Copilotage  (Read 102341 times)

0 Members and 1 Guest are viewing this topic.

Offline Apofis

  • Sr. Member
  • ****
  • Posts: 349
  • Karma: 0
Reply #350 - 16 September 2010, 08:09:12
Perso se prix me surprend pas plus que sa malheureusement....

Bouquin technique => bien trop chère pour du papier ^^

me suis payé un bouquin sur de la prog dernièrement => 40 € les 300 pages.. aie..


"Oups c quoi se bruit" Fred Haise, apollo 13 :P

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #351 - 16 September 2010, 17:35:36
Alors, heureusement, j'ai le bouquin qui va bien :Le Grand Livre du langage C++, pas mal foutu du tout, il m'a bien aidé jusque là. Mais c'est vrai que jusqu'ici, j'ai tout fait pour éviter l'écueil des classes, ça va changer, je vous le dis. D'autant que je m'attaque à un autre projet, mais sur un autre simulateur. Toujours du réseau et toujours du transfert de données, mai sen externe et avec simconnect (!!!).

Yves



Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #352 - 16 September 2010, 18:08:05
Quote
ça va changer, je vous le dis. D'autant que je m'attaque à un autre projet, mais sur un autre simulateur.
Rhôôooo ... pas bien !  :badsmile:
Ben oui ... et nous ?

Ou alors tu te fais la main sur un autre simulateur , et tu reviens gonflé à bloc avec de nouvelles techniques ?
Ou tu fais tout à la fois ? :trucdeouf:
Ben en tout cas , cela fait plaisir de te voir toujours autant motivé !
:top:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #353 - 29 September 2010, 12:08:48
Bonjour à tous.

J'ai commencé à réorganiser mon code en classe C++ (POO). Cela ne marche pas trop mal, et c'est vrai que cela rend le code plus indépendant, donc réutilisable, et plus lisible aussi.

Il me reste des question :

Comment faire un SDK ou n'apparaitrait que la déclaration des classes mais pas leur définition dans un header ?

Spock, tu me parlais d'un point d'entrée dans la dll, mais par définition et surtout dans Orbiter, pas de fonction main() dans une dll. Comment faire ?

Voilà, c'est tout....pour le moment...

Yves



Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #354 - 29 September 2010, 18:32:40

Salut Pilote334 !
Par définition , le point d'entrée d'une dll s'appelle DllMain (....) .
A l'intérieur de cette fonction ,tu récupères ses paramètres pour gérer les moments qui suivent :

_Quand un processus s'attache à la dll.
_Quand un processus se détache de la dll
_Quand un Thread s'attache et se détache .

Quand la Dll est attachée à un processus , elle peut éxécuter ses fonctions Locales ( pour toi par exemple ouvrir des ports TCP etc ...) .
Elle peut exporter ses fonctions en utilisant un déclarateur spécial qui désigne au compilateur qu'une fonction
est en mode IMPORT ou EXPORT .
Tu déclares cette fonction dans le fichier .H de la dll , et tu l'inclues dans ton .cpp .
Tu dois compiler ton programme (dll)  pour obtenir un.lib qui servira de bibliothèque liée à ton projet pour orbiter.
Ton projet pour orbiter dans VC++ utilisera ta lib qui est l'équivalent de la dll .
Ensuite , ton module compilé faira appel à ta dll dés son premier appel de fonction .

Tu trouveras dans leSDK win32 et sur le NET toutes les infos à ce sujet .
http://msdn.microsoft.com/en-us/library/ms682583(VS.85).aspx
A+


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline tofitouf

  • Legend
  • ******
  • Posts: 1380
  • Karma: 0
Reply #355 - 29 September 2010, 21:22:04
Permet moi de te corriger mon cher Spock, ce que tu dis est tout à fait exact mais je ne crois pas que c'est ce qu'il demande.

Voici quelques points de fonctionnement sur les DLL.

Effectivement le point d'entré d'une dll est bien le DllMain. une fonction déclarer et qui va recevoir tous les appels systèmes : chargement, déchargement etc...

mais cette fonction n'est pas indispensable, loin de là. par défaut visual c++ en génère une si on n'en déclare pas.

Ce mode de fonctionnement en passant par le dllMain est utile quand on veux faire des librairies qui se chargent manuellement via la fonction LoadLibrary (comme le fait orbiter en interne)

Ici notre pilote a besoin de créer une dll d'ouil permettant d'être utilisé par divers autres projets.

il doit donc déclarer une séries de fonctions qui peuvent être appelés de l'extérieur de son projet sans que 'lautre projet ai connaissance du focntionnement interne de la dll.

C'est tout à fait possible et même assez simple.

tu peux exporter des fonctions C ou des classes.

pour cela il faut que tu passe par deux déclaration : __declspec( dllimport ) et __declspec( dllexport )

dans ton code à toi tu écrit
Code: [Select]
class __declspec( dllexport ) maClasseDeLaMort
{
public:
    void uneFonctionQu'onPeuxAppeler();


}


dans ton fichier cpp associé tu met le code de ta fonction comme d'hab, là rien ne change.

ensuite quand tu compile visual c++ génère 2 fichiers important : la dll et le .lib
si tu veux distribuer ta dll pour être utilisable il faut que tu file le le .lib la dll et le .h ci dessus légèrement modifié.

en effet il faut remplacer dllexport par dllimport.

Comme c'est agacant de devoir réécrire 2 fois la même chose en changeant un détail il y a une ptite astuce.

Souvent on exporte plusieurs classes, dans chacune on met un mot clef à la place du __declspec( dllimport )[/b

par exemple

class MA_DLL maClasse
{
.....
}


dans un .h à part inclus par toutes les autres classes (donc souvent en première ligne des autres .h) tu écrit

#ifdef EXPORT_MA_DLL
      #define MA_DLL __declspec( dllexport )
#else
      #define MA_DLL __declspec( dllimport )
#endif


et dans les paramètres de visual (préprocesseur) tu définit EXPORT_MA_DLL

les autres projets qui veulent utiliser ta dll eux ne doivent pas définir cette macro et le tour est joué

quand j'inclus ton .h j'inclus alors toujours le bout de code qui fait la définition et je sais donc que ce code là sera à importer ailleurs. Enfin disons que le compilateur et le linker s'y retrouvent et c'est déjà bien.

s'il y a besoin de plus d'infos n'hésite pas.


---------------------------------------------

PC en rade, codage en panne.... Nom de Zeus

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #356 - 29 September 2010, 21:24:20
:beer:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #357 - 29 September 2010, 23:13:49
J'en apprends beaucoup avec vous !

Je connaissais même pas les points d'entrées sur des DLLs. Je croyait que tous fonctionnait comme dans Orbiter (des fonctions prédéterminées par Orbiter).

Je note...


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #358 - 30 September 2010, 00:14:18
@Spock et Tofitouf : MERCI !!!!

Yves



Offline tofitouf

  • Legend
  • ******
  • Posts: 1380
  • Karma: 0
Reply #359 - 02 October 2010, 11:58:52
Pas de quoi, je pense que je vais ouvrir un fil juste pour expliquer le fonctionnement des Dlls.

là ca va être dur à retrouver, tout au fond d'un fil.


---------------------------------------------

PC en rade, codage en panne.... Nom de Zeus

Offline Vergil

  • Full Member
  • ***
  • Posts: 150
  • Karma: 0
Reply #360 - 08 October 2010, 13:04:03
Et quoi de neuf sur ce module de copilotage ?

Qui l'utilise ? Quand ? (=

_______________
Récit d'aventure, Futuriste ou historique, fait avec Orbiter sur :
http://orbiterlog.forumprod.com/

Merci d’apporter votre soutient pour le faire vivre si l'idée vous plait ( :

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #361 - 08 October 2010, 13:21:59

Salut !
Quote
Qui l'utilise ? Quand ? (=
Une autre version dirait :
Qui l'utilisera ? Quand ?
Time will tell
:music:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #362 - 09 October 2010, 12:20:55
Je dirais que même en version beta, il est parfaitement utilisable ! faut juste se mettre d'accord à plusieurs pour former un équipage. Pour le reste, en avant, vant !

Yves



Offline tofitouf

  • Legend
  • ******
  • Posts: 1380
  • Karma: 0
Reply #363 - 09 October 2010, 12:35:13
je suis toujours pas retourné sur les challenges mais organiser les parties multijoueur est ma priorité.


---------------------------------------------

PC en rade, codage en panne.... Nom de Zeus

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #364 - 09 October 2010, 13:40:26

Je suis toujours présent , moi aussi .
:music:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #365 - 09 October 2010, 15:29:25
Moi aussi :eek:


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline Vergil

  • Full Member
  • ***
  • Posts: 150
  • Karma: 0
Reply #366 - 09 October 2010, 15:45:38
Pareil (=

_______________
Récit d'aventure, Futuriste ou historique, fait avec Orbiter sur :
http://orbiterlog.forumprod.com/

Merci d’apporter votre soutient pour le faire vivre si l'idée vous plait ( :

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #367 - 09 October 2010, 17:23:00
Dream team ...
Quote
Moi aussi

C'était donc toi , ce moi !
moi
foi
loi
roi
soi
JACKPOT ( la mise sur le tapis :love: )
:ptdr:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Thrawn

  • Sr. Member
  • ****
  • Posts: 264
  • Country: France fr
  • Karma: 12
Reply #368 - 10 October 2010, 19:11:18
Je te repropose également mon aide pour tester tout ça. :hot:
Avec mon experience de pilote de combat virtuel et longuement habitué au plantage des connex ça devrait être marrant. :ptdr:


------------------------------------------------------------------------------------------------
Ex Astris Scientia

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #369 - 10 October 2010, 19:17:08


Quote
Avec mon experience de pilote de combat virtuel et longuement habitué au plantage des connex ça devrait être marrant.

çà l' est !
:ptdr:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Thrawn

  • Sr. Member
  • ****
  • Posts: 264
  • Country: France fr
  • Karma: 12
Reply #370 - 10 October 2010, 19:56:20
Longue vie et prospérité mon ami :beer:


------------------------------------------------------------------------------------------------
Ex Astris Scientia

Offline a5926

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
Reply #371 - 13 October 2010, 21:23:43
Salut!

I have to apologize for not speaking French and rely on Google to translate this forum. The only (lame!) excuse I have is that English is not my native language either and I'm planning to take French lessons :).

But the topic is very interesting to me. What we are trying to achieve is to setup a dedicated air and space flight simulator for teenagers. For the air part MS Flight Simulator is used, which allows to use a second connected PC to display MFDs and a variety of flight indicators, first PC used to run FS itself and show the "picture". Something similar we want to use for Orbiter, with one PC displaying the "picture", the second accepting commands and displaying MFDs.

From what I'm getting so far from this thread, the Copilotage module is dedicated to something very similar. Is it so? If it is, can evaluate or help with development?

Thanks in advance!


Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #372 - 13 October 2010, 21:45:58
Hello !

I have to apologize for not speaking English .... :badsmile:
I think the responsable for this project ( Pilote334) will be very happy to learn your interrest about his work .
You are free to evaluate , the module is working between 4 computers .
And sure , you will be a good partner for the development !
Try the last link TeamServer_100b.rar of this Topic !

Thank you for your interest too.

for bibi uncle :
Je regrette de pas pas être Canadien dans ce genre de cas ... mwah ahah ah




Message modifié ( 13-10-2010 21:49 )

Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline a5926

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
Reply #373 - 14 October 2010, 16:18:34
Merci beaucoup!


Offline tofitouf

  • Legend
  • ******
  • Posts: 1380
  • Karma: 0
Reply #374 - 14 October 2010, 22:20:03
Je me remet au travail. je prépare le site.


---------------------------------------------

PC en rade, codage en panne.... Nom de Zeus