Pour faire simple, je remplis une ComboBox d'une boite de dialoque et remplis aussi l'itemData avec une chaîne. Je souhaite récupérer la chaine dans un MessageBox.
Index=SendDlgItemMessage(hDlg, ID_CB1, CB_ADDSTRING, 0, (LONG) "Ceci est un test");
SendDlgItemMessage(hDlg, ID_CB1,CB_SETITEMDATA,Index,(LPARAM)"Un test");
La chaîne "Un test" est convertie en LONG
../..
Maintenant, je convertis le LONG en retour de SendDlgItemMessage en string
ostringstream oss;
oss << SendDlgItemMessage(hDlg, ID_CB1,CB_GETITEMDATA,SendDlgItemMessage(hDlg, ID_CB1, CB_GETCURSEL, 0, 0),0);
Je convertis la string en char* et cast en (const char*)
MessageBox(NULL, (const char*)oss.str().c_str(), "select ITEMDATA", MB_OK | MB_ICONINFORMATION);
La messageBox m'affiche 4460720, pourquoi la conversion ne fonctionne pas ??