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

Windows Discussion :

Charger des librairies


Sujet :

Windows

  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut Charger des librairies
    Bonjours,

    Je developpe une appi, et j'aurai besoin que le contenu du menu deroulant soit chargé depuis un fichier.txt ou un fichier .lib(par exemple).

    En revanche lors de la compilation je ne souhaite pas conserver le .txt ou .lib mais que soit inclus dans le .exe.

    Peut on m'expliquer comment sa se passe se genre de chose.

    merci

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Il faut passer par un script de ressources.

  3. #3
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    D'après ce que je comprends, ce n'est que pour l'icone de l'appli est quelque autre truc ?
    Ou on peut mettre n'importe quoi ?

    Pour etre bien compris je vais dire ce que je veux faire.

    Par exemple j'ai un fichier ville.lib qui contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    paris centre
    marseille droite
    J'aimerai faire une boucle while et afficher le contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (?? = ??) {
    cout << "Ville :" << tab['nom'];
    cout << "Position :" << tab['position'];
    }
    Voila, sa doit surement pas etre compliqué, mais j'en ai aucune idée de comment faire.

    Je tiens a preciser encore, qu'en aucun cas l'utilisateur n'a droit de voir le contenu de se fichier, donc peut etre compiler ce fichier.lib avec le .exe ?

    edit : c'est dans la section C++, je sais pas pourquoi mon topic a été deplacé chez windows ...

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Si je résume bien, tu as deux problèmes :

    - Premièrement, tu ne sais pas comment lire des données depuis un fichier, en langage C++.
    - Deuxièmement, tu veux savoir comment embarquer un fichier à l'intérieur d'un exécutable, afin de n'avoir qu'un seul fichier, l'exécutable, à traîner.

    Est-ce bien cela ? Et y a t-il autre chose ?

    Dans tous les cas, je t'ai déjà fourni la solution à ton deuxième problème : les ressources.

    D'après ce que je comprends, ce n'est que pour l'icone de l'appli est quelque autre truc ?
    Ou on peut mettre n'importe quoi ?
    Le paragraphe V-F du lien que je t'ai donné explicitement clairement qu'on peut embarquer absolument n'importe quoi comme ressource. Il faut évidemment lire l'article en entier pour comprendre comment ça marche ...

  5. #5
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    Je l'ai lu en entier, et j'ai fais toutes les exercises.

    Mais sa m'aide pas a savoir comment personnaliser, et aouter mes propres ressources.

    De plus a ce que j'ai lu sur d'autre forum, visual studio genere un .res qu'on peut ouvrir sans probleme pour prendre les sources.

    Et 3ieme point, ma version express n'integre pas d'editeur de ressource.

  6. #6
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par thebarbarius
    Je l'ai lu en entier, et j'ai fais toutes les exercises.
    Ouais je vais avaler ça.

    Citation Envoyé par thebarbarius
    Mais sa m'aide pas a savoir comment personnaliser, et aouter mes propres ressources.
    Eh bien, soit ville.lib le fichier que tu veux intégrer à l'intérieur de ton exécutable. Le contenu de ville.lib étant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    paris centre
    marseille droite
    Alors :

    1. Selon le fameux paragraphe V-F : Créer un script de ressources, que tu vas appeler mes_ressources.rc par exemple, qui contient la ligne suivante et rien d'autre : MonFichierVille 0x100 "ville.lib". 0x100 est un numéro d'id que tu donnes à ton type de ressource. Autres exemples de type de ressource existants sont "icône", "curseur", "chaîne de caractères", etc. 0x100 indique que c'est une ressource personnalisée. Le numéro d'id de ta ressource par contre, qui est de type 0x100, est "MonFichierVille" et cette ressource est, dans notre cas, un fichier.

    2. Selon le paragraphe V-B, il faut ajouter le fichier mes_ressources.rc à ton projet pour qu'il soit pris en compte. Après la compilation de ton projet, le fichier ville.lib sera donc inclus dans ton fichier exécutable sous l'identité "MonFichierVille".

    3. Selon le paragraphe V-E, et en tenant compte de V-F (FindResource(hInstance, "MonFichierVille", MAKEINTRESOURCE(0x100));), voici comment accéder à la ressource pendant l'exécution :
    Code C : 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
    23
    24
    25
    #include <stdio.h>
    #include <windows.h>
     
    int main()
    {
        HINSTANCE hInstance;
        HRSRC hrcMyData;
        HGLOBAL hMyData;
        LPVOID pMyData;
        DWORD dwSizeofMyData, i;
     
        hInstance = GetModuleHandle(NULL);
        hrcMyData = FindResource(hInstance, "MonFichierVille", MAKEINTRESOURCE(0x100));
        hMyData = LoadResource(hInstance, hrcMyData);
        pMyData = LockResource(hMyData);
        dwSizeofMyData = SizeofResource(hInstance, hrcMyData);
     
        /* pMyData pointe maintenant sur le contenu du fichier ville.lib, plus précisément de la ressource MonFichierVille. */
        /* Affichons ce contenu octet par octet. */
     
        for(i = 0; i < dwSizeofMyData; i++)
            putchar(pMyData[i]);
     
        return 0;
    }
    Donc je suppose que le problème de ressource a bien été réglé. Peut-on passer au deuxième ?

    Citation Envoyé par thebarbarius
    De plus a ce que j'ai lu sur d'autre forum, visual studio genere un .res qu'on peut ouvrir sans probleme pour prendre les sources.
    Pargraphe V-B :
    Lorsque vous [compilez un projet contenant un script de ressources], tous les fichiers sources du projet [(*.c, *.cpp, etc.)] ainsi que le fichier de ressources [sont] compilés puis liés pour produire l'exécutable (...). A noter que le compilateur de ressources est un programme à part ([rc.exe]) et non le compilateur C lui-même. Il génère un fichier .res qui contient enfin effectivement les données à intégrer dans l'exécutable contrairement au fichier .rc qui n'est qu'un simple fichier texte.
    En gros, un fichier .res c'est du binaire, on n'y touche pas.

    Citation Envoyé par thebarbarius
    Et 3ieme point, ma version express n'integre pas d'editeur de ressource.
    Tu n'en as pas besoin.

Discussions similaires

  1. Charger des librairies à partir d'un répertoire
    Par Aragorn05 dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 20/02/2008, 15h14
  2. [Avancé][Optimisation] Charger des librairies dynamiquement
    Par Wookai dans le forum Général Java
    Réponses: 12
    Dernier message: 12/08/2005, 16h34
  3. [NETBEANS] Monter des librairies
    Par Yann dans le forum NetBeans
    Réponses: 1
    Dernier message: 02/07/2004, 14h12
  4. Charger des paramètres à partir de beans
    Par lalakers dans le forum ANT
    Réponses: 1
    Dernier message: 19/05/2004, 18h25
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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