Моя динамически размещаемая переменная обрезается с помощью SecureZeroMemory, затем ReadFile заполняет ее короткой 5-символьной строкой и набором оставшихся квадратов. Проблема заключается в нежелательных символах в конце строки:
"двигатель 췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍 췍췍"
Параметр lpNumberOfBytesRead в файле ReadFile показывает, что строка имеет значение 10 символов, потому что это Unicode?
Может ли кто-нибудь помочь мне показать, как удалить эти ненужные символы? Есть ли такая функция, как ZeroMemory, которая их очищает?
TCHAR *sIncoming;
sIncoming = (TCHAR *) malloc(sizeof(TCHAR) * 4096 + sizeof(TCHAR));
RtlZeroMemory(sIncoming ,sizeof(sIncoming));
// (a string array with no characters in it: "")
bSuccess = ReadFile(hPipe,sIncoming ,BUFSIZE*sizeof(TCHAR),&dwBytesRead,NULL);
// Now the string array has the incoming string plus extra characters in it:
// "motor췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍췍"
free(sIncoming);
Спасибо!