WinApi Unicode проблема - PullRequest
       0

WinApi Unicode проблема

0 голосов
/ 03 сентября 2011

У меня есть код:

wchar_t* temp = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 1000 * sizeof(wchar_t));
wchar_t* temp2 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 1000 * sizeof(wchar_t));

GetTempPathW(1000, temp);

GetTempFileNameW(temp, L"vdr", GetCurrentProcessId(), temp2);

HeapFree(GetProcessHeap(), 0, temp2);

MessageBoxW(0,temp2,0,0);

Он должен сделать файл "vdrXXXX.tmp" с XXXX, чтобы быть идентификатором процесса.Но это возвращает странные вещи.Как символы Unicode, а затем часть пути.Что я делаю не так?

1 Ответ

2 голосов
/ 03 сентября 2011

Вы освобождаете память перед вызовом MessageBox().

В любом случае, нет необходимости использовать HeapAlloc(), просто используйте malloc().Фактически, поскольку GetTempFileName() имеет максимальный размер буфера MAX_PATH, это проще всего сделать с помощью буферов, выделенных стеком.

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