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

C Discussion :

Utilisation dll avec tables de configuration modifiables


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Par défaut Utilisation dll avec tables de configuration modifiables
    Bonjour,

    Je souhaiterais créer en C une dll contenant une multitude d'algorithmes utilisant des tables de configuration.
    L'utlisateur final embarque cette dll dans son IHM exécuté dans un environnement Windows et destiné à des opérateurs de maintenance.

    Je souhaiterais dans le futur ne pas modifier ma dll et faire évoluer le paramétrage des tables.

    Pour cela, quelle est la solution la plus simple permettant à l'utilisateur final de la dll de n'avoir à remplacer que ce fichier de paramétrage à l'extérieur de la dll ?


    PS: désolé si cette question vous parait futile, mais étant axé info indus et microcotrolleur, ce sujet et son vocabulaire associé ne m'ont pas encore permis de trouver réponse dans les différents posts. Et comme le temps m'est compté, je préfère gagner du temps auprès d'experts du sujet.
    Merci à vous pour votre compréhension.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Je ne sais pas si votre solution est vraiment viable. Notamment car le programme devra appeler des fonctions de la DLL, mais ne pourra pas savoir quelle fonction est disponible, ou non.
    Sinon, pour répondre, j'aurais dit de faire un fichier de configuration (.ini par exemple), qui serait lu au démarrage de la DLL (par exemple, le programme appelle une fonction init()). Toutefois, le problème mentionné ci-dessus me parait important (sauf si la DLL retourne des pointeurs de fonction ... et j'imagine que cela sera vite intenable).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Par défaut
    Bonsoir et merci pour cette réponse.

    Pour préciser un peu le besoin, voici un complément.

    Le programme principal va lire des données de paramètres de vol d'un avion.
    Le programme appellera la DLL en passant un pointeur sur chaque variable qui sera donc un tableau de n valeurs.

    Pour chaque échantillon, la DLL calculera un résultat à partir des algorithmes, ce résultat se cumulera pour chaque échantillon jusqu'à atteindre le dernier échantillon n.

    Au final, la DLL aura calculé plusieurs résultats et aura éventuellement levé des erreurs.

    La DLL retournera ensuite un pointeur qui se positionnera sur une structure avec dans ses champs, les résultats et les erreurs rencontrées.

    Bien entendu, les interfaces définissant les variables d'entrées et sorties sont à figer pour que programme et DLL discutent correctement.

    La raison pour laquelle je souhaite avoir dans un autre fichier les tables utilisées par les algo de la DLL est que la DLL est développée pour l'aéronautique et soumis à la norme do278.
    Cette norme oblige à refaire un parcours de certification, revues, tests si je change une ligne de code dans la DLL. Ce parcours peut être long pour juste un changement de code qui prend 5 minutes.

    S'il y a un moyen de dissocier code et tables de paramétrage, alors je dois définir ce fonctionnement des le début de mon développement et l'inscrire dans mes plans de développement soumis à revue par des autorités de certification.

    Si ce fonctionnement est validé, je pourrais dans le futur ne changer que mes tables de paramétrage avec un minimum d'effort en termes de vérifications liées à la certification.

    J'avoue que je trouve plus simple techniquement d'embarquer code et tables dans la DLL, mais si une possibilité de réduire le coût d'une recertification existe alors je dois la considérer avant de commencer à travailler.

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Inspire-toi des fonctions de fichiers en C: FILE* fopen(filename), void fclose(FILE*) et int fscanf(FILE*, format, ...).

    1. Crée une structure permettant de représenter tous tes paramètres, et n'ajoute que sa déclaration (pas sa définition) aux en-têtes publics.
    2. Ajoute une fonction qui remplit une telle structure à partir d'un fichier et la retourne (via un pointeur?)
    3. Si pointeur, ajoute une fonction pour désallouer la structure.
    4. Demande cette structure en argument dans tes fonctions qui en ont besoin.


    Ainsi, tes paramètres sont dans un fichier libre, extérieur au code.

Discussions similaires

  1. utilisation DLL avec visual studio .net
    Par G-OnZa dans le forum Visual C++
    Réponses: 2
    Dernier message: 27/04/2007, 15h56
  2. utiliser filtrage avec table
    Par sandytarit dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 11/01/2007, 14h33
  3. Utilisation DLL avec java et licence ?
    Par dinver dans le forum Général Java
    Réponses: 4
    Dernier message: 13/04/2006, 21h23
  4. [FORMS] Utilisation de DLL avec ORA_FFI
    Par Nounoursonne dans le forum Forms
    Réponses: 2
    Dernier message: 07/12/2004, 09h19
  5. utilisation de dll avec diverses compilateurs
    Par Thylia dans le forum C++
    Réponses: 30
    Dernier message: 21/10/2004, 16h30

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