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

MinGW Discussion :

Erreur "Shobjidl.h"


Sujet :

MinGW

  1. #1
    Candidat au Club
    Homme Profil pro
    (Etudiant)
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : (Etudiant)

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Erreur "Shobjidl.h"
    Bonjour,

    J'ai un gros soucis avec mon logiciel (Win32 console), j'utilise CodeBlock avec mingw pour la compilation.
    Je cherche à créer un raccourci de mon logiciel, cela fait plusieurs heure que je cherche, j'ai testé même avec "ShellExecute", mais cela ne fonctionnait pas correctement du coup je me suis penché sur l'interface IShellLink ,cela me faisait une erreur : Shobjidl.h: No such file or directory, j'ai essayé de télécharger le fichier, et de l'inclure mais cela me faisait d'autres erreur.
    J'ai donc abandonné cette méthode et j'ai trouvé celle ci :https://www.codeproject.com/Articles...y-in-Cplusplus
    Cependant je me retrouve une seconde fois avec la même erreur, je ne trouve rien de satisfaisant sur internet c'est la raison pour laquelle j'ai fais l'effort de me créer un compte pour poster cette discussion.

    En vous remerciant par avance.
    Ajaax

  2. #2
    Candidat au Club
    Homme Profil pro
    (Etudiant)
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : (Etudiant)

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Cependant, je tiens à signaler que je suis preneur de toute solution possible, si vous avez besoin des codes sources :
    Voici le code quand j'avais utilisé l'interface IShellLink :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    HRESULT CreateLink(LPCWSTR lpszPathObj, LPCSTR lpszPathLink, LPCWSTR lpszDesc)
    {
        HRESULT hres;
        IShellLink* psl;
     
        // Get a pointer to the IShellLink interface. It is assumed that CoInitialize
        // has already been called.
        hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl);
        if (SUCCEEDED(hres))
        {
            IPersistFile* ppf;
     
            // Set the path to the shortcut target and add the description.
            psl->SetPath(lpszPathObj);
            psl->SetDescription(lpszDesc);
     
            // Query IShellLink for the IPersistFile interface, used for saving the
            // shortcut in persistent storage.
            hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);
     
            if (SUCCEEDED(hres))
            {
                WCHAR wsz[MAX_PATH];
     
                // Ensure that the string is Unicode.
                MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH);
     
                // Add code here to check return value from MultiByteWideChar
                // for success.
     
                // Save the link by calling IPersistFile::Save.
                hres = ppf->Save(wsz, TRUE);
                ppf->Release();
            }
            psl->Release();
        }
        return hres;
    }
    Il y avait une erreur de déclaration de IShellLink. Je ne sais pas si cela peut aider.

    Désormais la nouvelle erreur avec l'utilisation de la nouvelle méthode est dans le fichier CreateShortCut.h , Il me met : fatal error: Shobjidl.h: No such file or directory

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En effet, il y a pas mal d'interfaces COM qui manquent au SDK de MinGW. Généralement on se retrouve à devoir les re-piquer dans un SDK Visual Studio, en traduisant éventuellement les parties incompatibles...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Candidat au Club
    Homme Profil pro
    (Etudiant)
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : (Etudiant)

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    N'y a t-il pas une interface COM dans le SDK de MinGW qui serait capable de faire la même chose, un simple raccourci, ou une technique. Le fait de devoir traduire des parties incompatibles me semble peut être un peu compliqué pour mon niveau, après c'est peut être qu'une illusion que je me fais. En tout cas merci d'avoir répondu à mon problème.

  5. #5
    Candidat au Club
    Homme Profil pro
    (Etudiant)
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : (Etudiant)

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Alors voilà ce que je viens de faire : j'ai simplement changé de logiciel d'édition de c++ et je suis passé à Microsoft Visual Studio Community 2015, petit bémol, j'ai toujours la même erreur je ne comprends pas vraiment : Shobjidl.h: No such file or directory

  6. #6
    Candidat au Club
    Homme Profil pro
    (Etudiant)
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : (Etudiant)

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bon, après une petite heure de travail, j'ai traduis mon logiciel pour le passer sur Visual Studio 2015 et désormais j'utilise l'interface IShellLink qui fonctionne. Merci d'avoir passé du temps à chercher.

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

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