none
Insérer un Compléments COM dans un windows form. RRS feed

  • Question

  • Logiciel utilisé : Visual Studio C++ 2010 express
    Système exploitation : Windows 7 ( 64 bits )

    Problème : je voudrai insérer dans un windows form un contrôle permettant de lire des fichier Flash ( .swf )
    Ce que j'ai fait :
    Dans ma windows form :
    j'ai insérer avec la boîte à outils le composant  Shockwave Flash Object ( Composants COM  Flash32_16_0_0_235.ocx )
    J' insérer un  bouton pour lire un fichier
    code : private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e)
              {
                      axShockwaveFlash1->Movie = "./Data/Aide.swf";
                      axShockwaveFlash1->Play();  
               }
    Pas d'erreur lors de la compilation.
    Pendant l'exécution, rien ne se passe lorsque je clique sur le bouton "button2".


    MJ

    vendredi 19 décembre 2014 17:21

Réponses

  • je pense avoir trouvé une solution.

    Le fichier Aide.swf se trouve sur mon disque dur. Il faut utiliser le chemin absolu de ce fichier.

    Mon code :

    private : System::Void button2_Click(System::Object^  sender, System::EventArgs^  e)

    {

      axShockwaveFlash1->Movie = "D:/Projets/Projects/Video/Video/Data/Aide.swf";

      axShockwaveFlash1->Play(); 

    }

    Cela fonctionne parfaitement.

    Remarque : la deuxième instruction est même inutile.


    MJ


    • Modifié tétard lundi 22 décembre 2014 23:27
    • Marqué comme réponse tétard lundi 22 décembre 2014 23:29
    lundi 22 décembre 2014 23:25

Toutes les réponses

  • N'avez-vous pas un problème de compatibilité 32/64 bits ?

    En débuggant dans VS, n'avez-vous pas de message d'erreur dans le console de sortie ?


    Paul Bacelar, Ex - MVP VC++

    samedi 20 décembre 2014 23:33
    Modérateur
  • Je ne pense avoir de problème de compatibilité.

    Pour plus d'information :

    La windows form qui contient le Composant COM est affichée en utilisant la méthode ShowDialog().

    En déboguant dans VS, je n'ai pas de message d'erreur :
    Voila ce que j'obtient :
    'Video.exe' (Managé (v4.0.30319)) : 'C:\windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'D:\Projets\Projects\Video\Debug\Video.exe' chargé, symboles chargés.
    'Video.exe' (Managé (v4.0.30319)) : 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'D:\Projets\Projects\Video\Debug\AxInterop.ShockwaveFlashObjects.1.0.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_fr_b77a5c561934e089\mscorlib.resources.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms.resources\v4.0_4.0.0.0_fr_b77a5c561934e089\System.Windows.Forms.resources.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'D:\Projets\Projects\Video\Debug\Interop.ShockwaveFlashObjects.1.0.dll' chargé
    'Video.exe' (Managé (v4.0.30319)) : 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\Accessibility\v4.0_4.0.0.0__b03f5f7f11d50a3a\Accessibility.dll' chargé
    Le programme '[6044] Video.exe: Managé (v4.0.30319)' s'est arrêté avec le code 0 (0x0).


    MJ

    • Marqué comme réponse tétard lundi 22 décembre 2014 23:28
    • Non marqué comme réponse tétard lundi 22 décembre 2014 23:29
    dimanche 21 décembre 2014 20:08
  • je pense avoir trouvé une solution.

    Le fichier Aide.swf se trouve sur mon disque dur. Il faut utiliser le chemin absolu de ce fichier.

    Mon code :

    private : System::Void button2_Click(System::Object^  sender, System::EventArgs^  e)

    {

      axShockwaveFlash1->Movie = "D:/Projets/Projects/Video/Video/Data/Aide.swf";

      axShockwaveFlash1->Play(); 

    }

    Cela fonctionne parfaitement.

    Remarque : la deuxième instruction est même inutile.


    MJ


    • Modifié tétard lundi 22 décembre 2014 23:27
    • Marqué comme réponse tétard lundi 22 décembre 2014 23:29
    lundi 22 décembre 2014 23:25
  • Merci pour ce retour.

    Pour vérifier les problèmes de chemin d'accès à des fichiers, je vous conseille ProcessMonitor

    http://technet.microsoft.com/fr-fr/sysinternals/bb896645.aspx


    Paul Bacelar, Ex - MVP VC++

    mardi 23 décembre 2014 16:12
    Modérateur