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

C++ Discussion :

lancement d'un processus: error C2440: '=' : impossible de convertir de 'char [71]' en 'LPCWSTR'


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 28
    Par défaut lancement d'un processus: error C2440: '=' : impossible de convertir de 'char [71]' en 'LPCWSTR'
    bonjour,
    c'est encore moi
    voici mon code:

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     {
     
     
     
        char adresse[]="monexecutable.exe";
     
     
     
    	SHELLEXECUTEINFO ExecuteInfo;    
     
     
     
    	memset(&ExecuteInfo, 0, sizeof(ExecuteInfo));
     
     
     
    	ExecuteInfo.cbSize       = sizeof(ExecuteInfo);                                  
     
     
     
    	ExecuteInfo.lpFile       = adresse;  
     
     
     
    	if(ShellExecuteEx(&ExecuteInfo) == FALSE)
     
     
     
    	{
     
     
     
    		// erreur
     
    		printf("erreur!!");
     
     
     
    	}    
     
     
     
    	printf("\nlooool, ca marche :p\n\n"); 
     
     
     
     
     
     
     
        return EXIT_SUCCESS;
     
     
     
    }

    quand je le mets dans un programme seul, en main, il n'y a aucune erreur, ça compile, ça s'exécute très bien!!
    quand je le mets en fonction, erreur!!
    error C2440: '=' : impossible de convertir de 'char [71]' en 'LPCWSTR'
    qu'est ce que ça veut dire

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Visiblement, tu travaille sous Windows et peut être même sous Visual Studio.

    Il existe 2 types de chaines de caractères, les chaines de caractères ANSI et les chaines de caractères Unicode.

    Ton projet doit être configuré en mode "utilisation des chaines de caractères Unicode" et donc les appels systèmes doivent alors utiliser des chaines de caractères Unicode et dans ce que tu présentes, ce sont des chaines de caractères ANSI.

    Pour palier à cela, il faut utiliser une macro T() et le type TCHAR qui permet d'assurer le portage entre ces 2 modes de compilation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TCHAR adresse[]= _T("monexecutable.exe");
    Attention, dans ce cas, on n'utilise plus printf non plus (ou alors an sait ce que l'on fait), on utilise la fonction _tprintf qui est aussi une macro qui suivant le mode de compilation va choisir automatiquement le bon appel système (printf ou wprintf)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _tprintf(_T("erreur!!"));
    regarde ici pour des explication pour tprintf : http://msdn.microsoft.com/en-us/library/wc7014hz.aspx
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 28
    Par défaut
    ça marche
    oui je travaille sur visual studio 2008, et il faut dire que ça ne fait même pas un mois que je commence à découvrir le c++ et la programmation sur windows même
    En fait il faut utiliser tprintf pour tout affichage ou juste pour l'affichage des TCHAR?
    Et c'est quoi le header associé? parce que là pour moi c'est identificateur introuvable

    merci beaucoup

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par sunvi Voir le message
    merci beaucoup
    Avec plaisir mais c'est encore mieux si tu n'oublies pas le bouton
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 28
    Par défaut
    oui

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Citation Envoyé par sunvi Voir le message
    En fait il faut utiliser tprintf pour tout affichage ou juste pour l'affichage des TCHAR?
    Seulement pour TCHAR
    Et c'est quoi le header associé? parce que là pour moi c'est identificateur introuvable
    C'est _tprintf() avec un underscore, et c'est déclaré dans <tchar.h>
    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.

  7. #7
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    C'est _tprintf() avec un underscore...
    Oups, tu as raison, je corrige le post initial, merci
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/10/2013, 13h46
  2. Réponses: 9
    Dernier message: 04/01/2011, 07h34
  3. Réponses: 3
    Dernier message: 18/06/2009, 18h30
  4. Réponses: 2
    Dernier message: 07/08/2008, 21h19
  5. Lancement de plusieurs processus
    Par Premium dans le forum Administration système
    Réponses: 5
    Dernier message: 30/05/2006, 12h11

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