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

MFC Discussion :

[Visual C++]probleme avec un chemin relatif


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut [Visual C++]probleme avec un chemin relatif
    Bonjour

    je travaille sur Visual C++ et j'essaie de lancer une image flash dans une fenetre.
    pour cela j'utilise la fonction setMovie de CShockWaveFlash . Voici son code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CShockwaveFlash::SetMovie(LPCTSTR lpszNewValue)
    {
        static BYTE parms[] =
            VTS_BSTR;
        InvokeHelper(0x66, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
             lpszNewValue);
    }
    mon probleme est que je n'arrive pas à afficher mon image.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_FlashPlayer.SetMovie(".\\cdromflash.swf");
    mais ca marche quand je modifie de cette facon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_FlashPlayer.SetMovie("c:\\cdromflash.swf");
    Bien sur dans ce deuxieme exemple j'ai copié l'image dans c:\
    tandis que dans mon premier exemple l'image se trouve dans le répertoire courant ou se trouve mon projet.

    S'il vous plait vous pourriez m'aider. je ne comprend pas du tout pourquoi la fonction de comprend pas les chemins relatifs.

  2. #2
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Bizarre, ça doit marcher.

    Est-ce que tu changes le répertoire courant ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    non ca reste le meme.

    Moi aussi je me dis que ca doit marcher mais ca ne marche pas

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 265
    Points : 6 686
    Points
    6 686
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par bouba83
    dans mon premier exemple l'image se trouve dans le répertoire courant ou se trouve mon projet.
    Bonjour,

    je crois que ton fichier doit se trouver au même endroit (dans le même répertoire) que l'exécutable.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Je bien mis l'image dans le dossier Debug ou se trouve l'executable mais ca ne marche pas non plus.

    j'ai tout essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    m_FlashPlayer.SetMovie(".\\Debug\\CDROMFLASH.swf");
    m_FlashPlayer.SetMovie("\\Debug\\CDROMFLASH.swf");
    m_FlashPlayer.SetMovie("Debug\\CDROMFLASH.swf");
    m_FlashPlayer.SetMovie("CDROMFLASH.swf");
    m_FlashPlayer.SetMovie(".\\CDROMFLASH.swf");
    m_FlashPlayer.SetMovie("\\CDROMFLASH.swf");
    Je ne sais plus quoi faire...

  6. #6
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Fais un

    avant l'appel de SetMovie, et regardes quel est le dossier affiché.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    j'ai pas le temps de lire la fenetre ms-dos comment fait on pour qu'elle ne se ferme pas?

  8. #8
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    J'ai fais avec ces deux codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    system("pause");
    system( "dir" );
        m_FlashPlayer.SetMovie("CDROMFLASH.swf");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    system("dir");
     system( "pause" );
         m_FlashPlayer.SetMovie("CDROMFLASH.swf");
    mais je ne peux toujours pas voir ce que me demande la commande system("dir");

  10. #10
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 265
    Points : 6 686
    Points
    6 686
    Billets dans le blog
    2
    Par défaut
    En fait, habituellement, on utilise une string (ou CString si tu préfère) dans laquelle tu met le path de ta ressource. Ici, ta ressource c'est ton fichier flash. Ce path doit être récupéré dans un fichier ini ou quelque chose comme cela.

    Dans un premier temps, tu peux déclarer cette string en globale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define g_strFlashPath "c:\\sketuveu\\";
    et ton appel ressemblera à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_FlashPlayer.SetMovie(strFlashPath+"CDROMFLASH.swf");
    Hope it helps.

  11. #11
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    system("dir");
    system( "pause" );
    m_FlashPlayer.SetMovie("CDROMFLASH.swf");
    Cette méthode doit fonctionner, tu n'as même pas de console ?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Le truc c que je voudrais que le chemin reste en relatif parce que si une personne veut utiliser l'exécutable sur sa propre machine c'est mieux d'avoir un chemin relatif tu comprend ce que je veux dire?

  13. #13
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char path[260];
    GetCurrentDirectory( 260, path );
    MessageBox( 0, path, 0, 0 );
    Qu'affiche ce code ?

  14. #14
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 265
    Points : 6 686
    Points
    6 686
    Billets dans le blog
    2
    Par défaut
    Sinon, tu peux tenter le GetCurrentDirectory()

  15. #15
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 265
    Points : 6 686
    Points
    6 686
    Billets dans le blog
    2
    Par défaut
    Il y a aussi GetModuleFileName();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char str[256];
    GetModuleFileName(NULL, str, 256);
    CString strCMieuxUneCString = str;
    Mais ça te donne tout: le path + le nom de l'exécutable. M'enfin, il suffit de faire un petit traitement après, ReverseFind devrait le faire

  16. #16
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    char str[256];
    GetModuleFileName(NULL, str, 256);
    CString strCMieuxUneCString = str;
    GetModuleFileName retourne le vrai chemin justement, il faut utiliser GetCurrentDirectory pour voir si path != str.

  17. #17
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Pour info personnel, c'est quel composant pour lequel tu as généré la classe CShockWaveFlash qui te permet d'afficher du flash?

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    désolée pour vous répondre que maintenant,

    j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char path[260];
    GetCurrentDirectory( 260, path );
    MessageBox( 0, path, 0);
    m_FlashPlayer.SetMovie("CDROMFLASH.swf");
    qui me donne comme résultat le répertoire courrant ou je travaille
    qui est donc le répertoire DisplayFlash.
    J'ai placé l'image CDROMFLASH.swf dans ce meme répertoire.

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    c'est un control activeX shockware Flash object.

  20. #20
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    C'est de Macromédia?
    Où est ce qu'on peut l'avoir cet activex?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Travailler avec un chemin relatif
    Par Spont dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 22/04/2009, 18h12
  2. Lancement d'un .exe avec C# - chemin relatif?
    Par WeeJay dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 28/05/2008, 09h29
  3. probleme avec le chemin
    Par ralf91 dans le forum C#
    Réponses: 1
    Dernier message: 14/05/2008, 21h23
  4. [Visual C++]probleme avec les fonctions declarées static
    Par sana06 dans le forum Visual C++
    Réponses: 2
    Dernier message: 20/07/2007, 11h21
  5. [Système]Probleme avec un chemin dans cmd.exe
    Par Sarrus dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 14/09/2005, 08h31

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