C++ добавление текстовых переменных с ошибками WriteFile
Моя проблема в том, что когда я использую это:
LPSTR a = "0";
LPSTR b = "1";
LPSTR c = "2";
LPSTR d = "3";
LPSTR e = "4";
TCHAR strex[5];
DWORD x;
myFile = CreateFile("C:\\a.txt", FILE_WRITE_DATA, NULL, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
TCHAR n[5];
StringCchCopy(n, 5, a);
StringCchCat(n, 5, b);
StringCchCat(n, 5, c);
StringCchCat(n, 5, d);
StringCchCat(n, 5, e);
strex = n;
WriteFile(myFile, strex, (DWORD)(sizeof(strex)), &x, NULL);
CloseHandle(myFile);
Я получаю эту ошибку для этой строки: strex = n;
ошибка C2106: '=': левый операнд должен иметь значение l
Если я изменю TCHAR strex[5];
в TCHAR strex;
тогда я получаю следующие ошибки:
ошибка C2440: "=": невозможно преобразовать из "TCHAR [5]" в "TCHAR"
а также
ошибка C2664: "WriteFile": невозможно преобразовать параметр 2 из "TCHAR" в "LPCVOID"
Есть ли способ сделать то, что я пытаюсь сделать с другим кодом? Помощь будет оценена.
1 ответ
Вы должны использовать старый компилятор, так как C2106 - неправильная ошибка. Так должно быть
error C3863: array type 'TCHAR [5]' is not assignable
Когда ты:
TCHAR strex[5];
Вы создаете массив из пяти символов в стеке. Strex - указатель на этот массив. Вы не можете изменить этот указатель. Итак, когда вы:
strex = n;
Вы просите назначить указатель n
к указателю strex
, Если вы хотите указатель на n
затем:
TCHAR* strex= n;
Буду работать. Но вам даже не нужно этого делать, у вас уже есть указатель с n
!
WriteFile(myFile, n, (DWORD)(sizeof(n)), &x, NULL);