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

Caml Discussion :

Dynlink et chargement de plugins


Sujet :

Caml

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 65
    Points
    65
    Par défaut Dynlink et chargement de plugins
    main.ml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    open Dynlink
     
    class main =
    object(self)
      val mutable liste = []
      val mutable menu =  []
      method append plug = liste <- liste @ [plug] ; menu <- menu @ [plug#desc]
      method init =
          ignore(List.map (fun s -> print_string s; print_newline () ; ()) menu);
      initializer
          print_string "OK"
    end ;;
     
     
     
    let ma = main;;
    let _ = 
        print_string "avant load";
        loadfile(adat_filename "plug1.cma");
        print_string "apres";
        ma#init;;
    plugins.ml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    open Main
     
    class virtual plugin = 
    object(self)
        val mutable desc = ""
        method desc = desc
        method virtual init : main -> unit 
    end;;
    main.mli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class main : 
    object
        val liste : plugin list
        method append : plugin -> unit 
        method init : unit
    end
    quand je compile ces deux bouts de code il me dit que
    `a est unbound dans method append `a
    dans le deuxième code que le type main est unbound

    Donc mon problème est que j'ai fait une un appli qui trace diverses fonction suites et series mathématique,
    j'ai une classe gui qui a un attribut qui représente la liste des plugins dispo (fonctions , suites ) et des plugins qui héritent d'une classe plugin
    le pseudo code plus haut montre un peu mon approche
    est-ce la bonne? comment je pourrai résoudre mes probleme de compilation (est-ce qu'il y a moyen de faire comme en C++ des truc du genre class plugin ;; dans le premier fichier) ?et si je suis à coté la plaque ben je vous demande conseil pour architecturer ça correctement?
    merci

  2. #2
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 65
    Points
    65
    Par défaut
    La solution est d'utiliser les types ouverts

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

Discussions similaires

  1. Chargement de plugins avec dépendances
    Par samball dans le forum C#
    Réponses: 4
    Dernier message: 14/05/2009, 11h36
  2. Problème de chargement de plugins RCP
    Par fadjerx dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 25/11/2008, 18h00
  3. Chargement de plugin
    Par henpower dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 29/04/2008, 12h45
  4. chargement de plugin radRails
    Par anis50 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/09/2007, 13h31
  5. chargement nouveau plugin
    Par Pueblo2708 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/08/2007, 13h28

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