IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

4D Discussion :

4DPlugin sur 4DServer pour Mac et PC


Sujet :

4D

  1. #1
    Membre du Club Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Points : 65
    Points
    65
    Par défaut 4DPlugin sur 4DServer pour Mac et PC
    Bonsoir,

    Je suis en train de developper un plugin 4D.

    Je souhaite qu'il puisse être utiliser sur 4D server tournant sur Mac ou PC pour des clients sur Mac ou PC.

    J'ai developpé un plugin (plugin.bundle) sur Mac qui fonctionnent donc sur server et client Mac, idem sur PC (plugin.4DX & plugin.rsr).

    Je souhaiterais pouvoir convertir le plugin Mac pour qu'un client PC puisse avoir accès aux commande du plugin sur le server Mac et reciproquement sur PC.

    J'éspère ne pas avoir été trop confu et vous remercie pour votre aide.

    Bonne soirée à tous.

    edit : En intergrant le plugin windows dans le plugin.bundle se trouvant dans le dossier PlugIns, un client windows sur un server Mac a accès aux commandes du plugin.

    Je suis toujours à la recherche de la solution pour un server windows.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 114
    Points
    114
    Par défaut
    Bonjour,

    J'ai un peu de mal à compredre ce que tu veux faire. Voici, en vrac, les principes du développement d'un plugin 4D multiplateforme.

    -Developper le plugin pour Mac OS. Avec 4D 2004, si possible en mach-o, format bundle, avec la hiérarchie décrite dans la doc :
    NomDuPlugin.bundle
    contents
    Info.plist
    MacOS
    NomDuPlugin
    PkgInfo
    Resources
    NomDuPlugin.rsrc

    Note : tout ça est normalement créé comme il faut par XCode.

    - Développer le même plugin pour Windows. A priori, avec Visual C++ (j'utilise la version Express, gratuite). Sous Windows, ça crée
    NomDuPlugin.4DX
    NomDuPlugin.RSR

    - Pour que le plugin puisse être utilisé sur les 2 plateformes, mettre les deux fichiers du plugin Windows dans un dossier "windows", lui-même mis au même niveau que "resources", dans le Bundle. Ca donne ça :
    NomDuPlugin.bundle
    contents
    Info.plist
    MacOS
    NomDuPlugin
    PkgInfo
    Resources
    NomDuPlugin.rsrc
    windows
    NomDuPlugin.4DX
    NomDuPlugin.RSR

    Placer le dossier NomDuPlugin.bundle à côté de la structure. Du coup, quel que soit la plateforem, le plugin est distribué aux postes clients. Chaque client exécutera la version associée à sa plateforme.

    S'il y a des routines spécifiques à un environnement, il faut quand même qu'elles soient pésentes dans l'autre. Typiquement, ça se fait avec des directives de compilation dans un source commun. Par exemple, un code qui appelle des routines spécifiques MacOS n'existant pas pour Windows, et qui ne doit rien faire sous Windows :

    void foo(PA_PluginParameters params)
    {
    #if (WIN32)
    // rien
    #elif (TARGET_API_MAC_OSX)
    ... le code ...
    #endif
    }

    Dans le code 4D, charge au développeur de ne pas appeler la routine sous Windows. S'il le fait, il n se passera rien, mis s'il en attend quelque chose, il va attendre longtemps ;-)

    Maintenant, si ce dont tu as besoin, c'est qu'un client PC demande à 4D Server - qui est sur Mac - de faire quelque chose de spécifique Mac, il suffit de faire exécuter le code sur le serveur via Executer sur serveur :

    $ignore:=Executer sur serveur("zeMethode";128*1024;"Ah que coucou")

    La méthode est lançée sur le serveur, qui, tournant sur Mac, va pouvoir traiter la chose.

    Si le poste client doit attendre un résultat, il te faudra mettre en place un systèm d'attente.

    Voilà, c'est vite fait rapide.

    A+

    Thibaud

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 114
    Points
    114
    Par défaut
    Arf ! je vois que les indentations des hiérarchies ont été perdues, je les reprend :
    NomDuPlugin.bundle
    [INDENT]contents
    Info.plist
    MacOS
    NomDuPlugin
    PkgInfo
    Resources
    NomDuPlugin.rsrc
    windows
    NomDuPlugin.4DX
    NomDuPlugin.RSR

  4. #4
    Membre du Club Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Merci beaucoup pour cette réponse Thibaud

    J'avais finalement réussi à faire fonctionner le plugin mais tout est à present très clair grâce à tes explications.

    Merci pour la routine et la capacité d'executer du code sur serveur.
    Ca me servira surement un jour.

    @+
    Paul

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Conseils sur devlpt equivalent à Access pour Mac
    Par GymTonic dans le forum Projets ADP
    Réponses: 4
    Dernier message: 04/06/2014, 18h09
  2. Choix d'un IDE pour créer un programme C++ portable sur win, linux, mac-os
    Par electroremy dans le forum Choisir un environnement de développement
    Réponses: 3
    Dernier message: 25/05/2014, 18h45
  3. Developper sur PC pour mac
    Par trist06 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 23/02/2011, 15h01
  4. Réponses: 8
    Dernier message: 19/03/2010, 07h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo