begin process at 2012 05 28 19:03:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Compiler avec cl et visual studio


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Compiler avec cl et visual studio

samedi 4 juin 2011 à 22:51:43 | Compiler avec cl et visual studio

bourineur

Bonjour, cela fait à peine quelques mois que j'ai commencé la programmation, et je me retrouve face à un problème en compilant sous windows avec microsoft visual studio.

Voila mon code :

#include <Windows.h>

void main () {
HINSTANCE error;

error=ShellExecute(NULL,(LPCWSTR)"open",(LPCWSTR)"c:\\prog\\PRog.exe",NULL,(LPCWSTR)"c:\\prog\",SW_SHOWNORMAL};

if (error < 32) {
printf("%d\n",error);
}
}

Donc en le compilant avec la commande "cl main.c", le programme fonctionne correctement (lance prog.exe), mais en le compilant avec un projet visual studio il m'affiche le nombre 2, qui correspond au chemin du fichier non trouvé.

Je ne m'explique pas d'où viens le problème.

Si vous avez une solution, merci d'avance.
dimanche 5 juin 2011 à 15:08:02 | Re : Compiler avec cl et visual studio

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

Comment se fait-il que tu sois obligé de mettre les (LPCWSTR). Comment as-tu déclaré tes variables ?

@++
lundi 6 juin 2011 à 00:38:33 | Re : Compiler avec cl et visual studio

bourineur

Réponse acceptée !



A force de chercher, j'ai fini par trouver la solution au hasard, c'est en faite la fonction ShellExecuteA que je dois utiliser (ainsi), car la fonction ShellExecute est réservé pour l&#8217;Unicode, qui est activé par défaut dans visual studio.
La commande correcte est donc :

ShellExecuteA(NULL,(LPCSTR)"open",(LPCSTR)"c:\\prog\\PRog.exe",NULL,(LPCSTR)"c:\\prog\\",SW_SHOWNORMAL};

Pour te répondre patatalo :

LPCWSTR correspond à const wchar_t *LPCWSTR (Unicode 16 bits) et LPCSTR correspond à __nullterminated const char *LPCSTR (ainsi 8 bits)

Donc je suis obligé de spécifié entre parenthèse les type pour avoir la conversion.

Au passage, __nullterminated indique que le dernier élément d'une chaine, ou d'un tableau pointe vers un pointeur contenant 0.

Donc si je met directement du char, ça ne marche pas.
lundi 6 juin 2011 à 00:44:55 | Re : Compiler avec cl et visual studio

bourineur

Je n'avais pas lu toutes ta question patatalo :

Donc comment je déclare mes variables ?

Et ben j'en fais pas ! Je trouve qu'il n'est pas nécessaire de déclarer des char que je ne vais utiliser qu'une seule fois. Autant directement mettre la chaine de caractère tel quel.

J'aurais pu faire des variable du type :

LPCSTR toto = (LPCSTR) "c:\\prog\\PRog.exe";

Mais je pense que c'est inutile.

Merci à tous. Bonne journée.
lundi 6 juin 2011 à 02:42:11 | Re : Compiler avec cl et visual studio

patatalo

Membre Club Administrateur CodeS-SourceS
re,

LPCSTR ascii = "ma chaine";
LPCWSTR unicode = (LPCWSTR) "m\0a\0 \0c\0h\0a\0i\0n\0e\0";

@++
lundi 6 juin 2011 à 02:58:47 | Re : Compiler avec cl et visual studio

patatalo

Membre Club Administrateur CodeS-SourceS

ajout d'un \0 en fin de chaine sinon, le zero final restera (char). Je ne suis pas sur que cela soit réellement nécessaire, a voir, mais c'est plus correct.

LPCWSTR unicode = (LPCWSTR) "m\0a\0 \0c\0h\0a\0i\0n\0e\0\0";
lundi 6 juin 2011 à 09:31:39 | Re : Compiler avec cl et visual studio

BruNews

Administrateur CodeS-SourceS
ShellExecute n'est réservé à rien du tout puisqu'elle n'existe pas.

C'est l'option de compil unicode ou ansi qui détermine si ShellExecute est #define de ShellExecuteA ou ShellExecuteW.

Il en va ainsi de toutes les fonctions API qui ont des parametres chaine de caractères.

ciao...
BruNews, MVP VC++
dimanche 19 juin 2011 à 11:37:57 | Re : Compiler avec cl et visual studio

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

patatalo a écrit

LPCSTR ascii = "ma chaine";
LPCWSTR unicode = (LPCWSTR) "m\0a\0 \0c\0h\0a\0i\0n\0e\0";



Plus simple :
Code C/C++ :
LPCSTR ascii = "ma chaine";
LPCWSTR unicode = L"ma chaine";



Cette discussion est classée dans : visual, prog, error, studio, cl


Répondre à ce message

Sujets en rapport avec ce message

Erreur à la compilation dans visual studio C++ [ par elo29 ] Bonjour, J'ai programmer un tout petit code pour convertir une image jpeg en bmp et voici les erreurs que j'ai à la compilation : LINK : warnin error avec visual studio [ par ja92 ] Bonjour , alors avec cette ligne la : int ZMD = (int) pow(2,ZM); j'obtient cette erreur la : Erreur 2 error C2668: 'pow' : appel ambigu à une Compatibilité de DLL visual studio 2003/2008 [ par nobeleusis ] Bonjour, J'ai une question à poser à propos de l'application sur laquelle je travaille en ce moment. Le problème est qu'elle ne s'éxecute pas sur des Qt, windows mobile et visual studio 2008 [ par dinosormp ] J'ai intégré et configuré Qt(open source)et sous visual studio 2008 professionnel pour créer un projet qui a pour cible Windows Mobile, mais au moment URGENT!!Lire un fichier sur Visual Studio C++ [ par ielalami ] Bonjour, J'utilse Visual Studio C++ 2008 Express avec Qt.Je veux afficher sur mon interface les données récupérées sur un fichier texte.J'ai essayé p probleme d'executer un programme en visual studio c ++ [ par sousoi ] bonjour, j'ai telecherger un projet visaul et j'essais de compiler ou executer ce projet mais malheureusement ce projet ne contient pas le fichier .ds FICHIER [ par zell61 ] slt tout le monde j aurai deux petite question a poser :-) enfait j ai fait mon code pour supprimer un client dans la liste mais quand je debogue il problème de chargement des classes [ par amine390 ] salut tous le monde, je suis un débutant en c,j'ai réussi d'installer Visual studio 6 et j'ai lancer une application hello world #include "stdafx.h" i Visual studio c++ lancer ressource [ par PriMe2302 ] bonjour, J'ai dans mon projet un fichier exécutable en ressource (une application console) , je voudrais savoir comment le lancer, comment détecter l Problème de compilation sous visual studio 2008 [ par chakiraziza ] Bonjour, Voici mon problème, j'ai un projet (Visual studio 2008) qui fonctionnait il y a quelque mois et j'ai voulu le retester ajd. Malheureusement


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales