Accueil > Forum > > > > FormatMessage et va_list
FormatMessage et va_list
mardi 17 août 2004 à 22:18:31 |
FormatMessage et va_list

Nebula
|
Bonsoir à tous ! J'essaie de formater mes messages d'erreurs à partir de GetLastError et de quelques autres variables passées à une procédure, un peu comme printf mais version MessageBox... J'utilise donc le code suivant : VOID nnc_message (PSTR format, va_list args) { PSTR msg = NULL; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, format, 0, 0, msg, 0, &args); MessageBox(HWND_DESKTOP, msg, "Attention !", MB_ICONWARNING | MB_OK); LocalFree(msg); } |
Le problème vient surtout de l'utilisation de va_list, qui est inconnue de mon fichier d'aide... Quelqu'un sait à quoi çà correspond, et comment l'utiliser (uniquement via Win32) ?
|
|
mardi 17 août 2004 à 22:30:11 |
Re : FormatMessage et va_list

vecchio56
|
va_list n'a rien a voir avec Win32, c'est du C: typedef char * va_list; dans <stdio.h>
|
|
mardi 17 août 2004 à 22:33:24 |
Re : FormatMessage et va_list

BruNews
|
void DisplayLastError(HWND hOwner) { LPVOID lpMsgBuf = 0; DWORD dwErr = GetLastError(); if(dwErr) { FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwErr, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), (LPTSTR) &lpMsgBuf, 0, NULL); if(lpMsgBuf) { MessageBox(hOwner, (LPCTSTR)lpMsgBuf, "Error", MB_ICONEXCLAMATION ); LocalFree(lpMsgBuf); } } }
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mardi 17 août 2004 à 22:38:45 |
Re : FormatMessage et va_list

djl
|
ouai, ou alors toujours en c standard avec les macros de stdargs.h
void func( int n, ... ) { int *t; unsigned i; va_list arg_lst; t = malloc( n* sizeof *t ); va_start( arg_lst, n); for( i = 0; i < n; i++ ) { t[i] = va_arg( arg_lst, int); } va_end(arg_lst);
free(t); }
pour mettre n parametre dans un tableau
|
|
mardi 17 août 2004 à 22:56:38 |
Re : FormatMessage et va_list

Nebula
|
Hum vecchio56, c'est stdarg et non stdio, et je sais ce que c'est merci. Seulement Microsoft a plein de fonctions "remplaçant" les standards (par exemple lstrcat, lstrcmp, etc), et je me demandais s'il en avait ici aussi, voilà tout !
On va simplifier : peut-on faire comme un printf, c'est à dire formater un message dynamiquement mais avec la fonction très pratique de FormatMessage, à savoir dont le buffer est alloué automatiquement par le système ? La version de BruNews est bien, mais j'aimerais inclure diverses informations en plus du texte de GetLastError.
Merci !
PS : ne me répondez pas wsprintf, il n'alloue pas de buffer que je sache.
|
|
mardi 17 août 2004 à 23:03:30 |
Re : FormatMessage et va_list

BruNews
|
wsprintf
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mardi 17 août 2004 à 23:07:13 |
Re : FormatMessage et va_list

vecchio56
|
J'ai pas osé la faire, mais j'aurais dû; je m'en mords les doigts a présent
|
|
mardi 17 août 2004 à 23:09:37 |
Re : FormatMessage et va_list

djl
|
c'est quoi wsprintf ?
|
|
mardi 17 août 2004 à 23:11:08 |
Re : FormatMessage et va_list

vecchio56
|
C'est sprintf, mais version Windows
|
|
mardi 17 août 2004 à 23:12:45 |
Re : FormatMessage et va_list

Nebula
|
Très drôle :p
J'ai finalement pu faire ce que je voulais, avec FormatMessage. Merci quand même !
|
|
Cette discussion est classée dans : code, format, msg, list, formatmessage
Répondre à ce message
Sujets en rapport avec ce message
Creation DLL avec OCX sans fenêtre de dialogue [ par reydau ]
Bonjour,j'ai un petit problème que je n'arrive pour l'instant pasà résoudre car je doit mal m'y prendre.J'essaye de créer une MFC de type DLL en utili
problème pour récupérer une variable [ par arwenita ]
Avec C++ Builder, je récupère une donnée et je veux l'afficher. Lorsque je le fais directement, ca marche :resultat->Lines->Text=cle1->Text.c_str();<
TreeView+ToolTip sans MFC [ par Manson ]
Salut,voila je cree mon TreeView comme ca :HWND TreeView;DWORD Style;TreeView = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, "TreeView",
va_list [ par garslouche ]
Salut à tous,je voudrais faire un truc idiot mais c juste pour un test : je voudrais faire une fonction myprintf qui fasse comme printf (en utilisant
Accept files dans list control (api win32) [ par youpiyoyo ]
ca fais 2 heures ke je galere sur comment reussir deja dans un permier temps a capter le message quand un fichier est selectioner puis mis dans la lis
Afficher dans une List box [ par Wiwi ]
Bonjour,je souhaite insérer des données dans une list box.Pour le moment j'utilise :m_msg_box.AddStirng("1");m_msg_box.AddString("2");m_msg_box.AddStr
lire des valeur dans un fichier texte et les inserer dans une list box [ par pidoumtimo ]
Bonjour.Je pense que le sujet decrit mon probleme.Au final la list box est vide.voila le bout de code ki me permet de lire et d'afficher.GetDlgI
pourquoi ce bout de code ne fonctionne pas? [ par flatou ]
tout est dans le titre, voici le code :#include #include "resource.h"LRESULT CALLBACK AppDlgProc(HWND, UINT, WPARAM, LPARAM);HWND hMain
automation excel [ par ricky78 ]
bonjourA l'aide d'une class encapsuler ADO j'arrive à me connecter à un fichier excel.J'aimerais connaitre la syntaxe SQL pour arriver à ecrire dans u
Msg d'errur;"Memory map" [ par mohacode ]
Bonjour, J'ai un code en c sous linux(je travaille avec fedora 8) Mon problème que le pg est exécutable mais il s'éxécute seulement une fois (normalem
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|