MessageBox производит другой вывод, чем Cout C ++ - PullRequest
0 голосов
/ 04 декабря 2011

Я пытаюсь загрузить имя изображения, используя его виртуальный адрес, вызывая GetModuleFileName(), который, кажется, правильно возвращает значение в массив TCHAR[].Я могу правильно отобразить данные, используя MessageBox(), но cout <<, кажется, отображает какое-то необычное шестнадцатеричное число.

TCHAR buf[MAX_PATH];
HMODULE hProc = LoadLibrary(TEXT("kernel32.dll"));
GetModuleFileName(hProc, buf, MAX_PATH);
cout << buf; //Produces the odd number
MessageBox(NULL, buf, NULL, MB_OK); //Produces correct filepath
FreeLibrary(hProc);

Должен ли я установить флаг для cout, чтобы он знал, чтобы правильно его печатать?Спасибо!

Ответы [ 2 ]

5 голосов
/ 04 декабря 2011

Вероятно, вам нужно использовать wcout, потому что ваш TCHAR может быть unicodish.Или преобразовать его.

2 голосов
/ 04 декабря 2011

Может быть, вам повезет больше

std::wcout << buf;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...