Blème compil raccourci

cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 - 13 juil. 2005 à 22:21
cs_papi2 Messages postés 44 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 6 mars 2009 - 27 oct. 2006 à 15:29
Bonjour,
J'ai chopé un code pour faire des raccourcis, je l'ai un peu modifié et j'ai essayé de le compiler et là, il me met une trentaine d'erreurs.
Voici le code :
#include <windows.h>
#include <shlobj.h>
#include <commdlg.h>


void main(){


char buffer[MAX_PATH];
int destination=CSIDL_DESKTOP;
char* path = "C:\\EditorMAX.exe";


CoInitialize(NULL);
IShellLink* psl;
HRESULT res = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl);
if (SUCCEEDED(res))
{
IPersistFile* ppf;
psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
SHGetSpecialFolderPath(0,buffer,destination,0);
strcat(buffer,"\\raccourci.lnk");
psl->SetPath(path);
WORD chaine[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0,buffer, -1,(LPWSTR)chaine, MAX_PATH);
ppf->Save((LPWSTR)chaine, 1);
ppf->Release();
}
psl->Release();
CoUninitialize();
}

Je pense que c'est à cause d'un des include mais ça pourrait être aussi une méga faute dans le code...
J'utilise Dev C++.
Si vous trouvez le blème...
Merci par avance.
@++

8 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
13 juil. 2005 à 22:55
Regarde si tu compiles bien en C++ et pas en C
0
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
14 juil. 2005 à 09:34
Bé oui, je compile bien en C++ mais ça me met une trentaine de fautes .
0
whikie Messages postés 99 Date d'inscription vendredi 24 juin 2005 Statut Membre Dernière intervention 17 septembre 2005
14 juil. 2005 à 10:08
Quand je compile ton code sous devcpp il me dit que main doit retourner un int

Sinon je ne trouve que 3 erreurs

Compilateur: Default compiler
Building Makefile: "C:\Dev-Cpp\Makefile.win"
Exécution de make...
make.exe -f "C:\Dev-Cpp\Makefile.win" all
g++.exe -c debug1.cpp -o debug1.o


debug1.cpp:5: error: `main' must return `int'


debug1.cpp: In function `int main(...)':
debug1.cpp:18: error: `SHGetSpecialFolderPath' undeclared (first use this function)
debug1.cpp:18: error: (Each undeclared identifier is reported only once for each function it appears in.)


make.exe: *** [debug1.o] Error 1


Exécution terminée
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
14 juil. 2005 à 10:23
#define _WIN32_IE 0x0400

#include <windows.h>
#include <shlobj.h>
#include <commdlg.h>

int main(){

char buffer[MAX_PATH];
int destination=CSIDL_DESKTOP;
char* path = "C:\\EditorMAX.exe";

CoInitialize(NULL);
IShellLink* psl;
HRESULT res = CoCreateInstance(CLSID_ShellLink, NULL,

CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl);
if (SUCCEEDED(res))
{
IPersistFile* ppf;
psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
SHGetSpecialFolderPath(0,buffer,destination,0);
strcat(buffer,"\\raccourci.lnk");
psl->SetPath(path);
WORD chaine[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0,buffer, -1,(LPWSTR)chaine, MAX_PATH);
ppf->Save((LPWSTR)chaine, 1);
ppf->Release();
}
psl->Release();
CoUninitialize();
}

El la ligne de commande:
g++ rac.cpp -luuid -lole32 -o rac.exe
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
14 juil. 2005 à 11:31
J'ai l'impression qu'il ne veut rien savoir, toujours ces 31 erreurs.
Voici ce qui me dit :
Unit :
c:\dev-c_~1\include\objbase.h
Message :
from C:\DEV-C_~1\Include\ole2.h:5,

Unit :
c:\dev-c_~1\include\shlobj.h
Message :
from c:\documents and settings\xp home\bureau\untitled1.cpp:4:

Unit :
c:\dev-c_~1\include\unknwn.h
Message :
`com_interface' only supported with -fvtable-thunks

Unit :
c:\dev-c_~1\include\unknwn.h
Message :
warning:`com_interface' attribute directive ignored

Ces deux dernières erreurs se répètent...

Je suis bien sous C++ et Windows.
@++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
14 juil. 2005 à 11:36
Si tu compiles avec ma ligne de commande?
0
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
14 juil. 2005 à 11:45
Je vais regarder.
@++
0
cs_papi2 Messages postés 44 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 6 mars 2009
27 oct. 2006 à 15:29
Bonjour,

Le code de vecchio56 fonctionne bien.
J'utilise DEV-CPP.
J'ai mis "STARTUP" pour avoir le raccourci dans démarrage.
Par contre, je n'arrive pas à le supprimer si je ne connaît pas le nom de la session.
Je mets par exemple :
DeleteFile("C:\\Documents and Settings\\CurrentUser(si je mets ici le nom de ma session, ça marche)\\Menu Démarrer\\Programmes\\Démarrage\\rac avec timer.lnk");

Si vous pouviez m'aider, merci.
A+
0
Rejoignez-nous