c ++添加带有WriteFile错误的文本变量
c++ adding text variables with WriteFile errors
我的问题是当我使用这个时:
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:“=”:左操作数必须是左值
如果我将 TCHAR strex[5];
更改为 TCHAR strex;
,则会出现以下错误:
错误 C2440:“=”:无法从 'TCHAR [5]' 转换为 'TCHAR'
和
error C2664: 'WriteFile' : 无法将参数 2 从 'TCHAR' 转换为 'LPCVOID'
有没有办法用不同的代码来完成我想做的事情?帮助将不胜感激。
您一定是在使用旧的编译器,因为 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);
我的问题是当我使用这个时:
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:“=”:左操作数必须是左值
如果我将 TCHAR strex[5];
更改为 TCHAR strex;
,则会出现以下错误:
错误 C2440:“=”:无法从 'TCHAR [5]' 转换为 'TCHAR'
和
error C2664: 'WriteFile' : 无法将参数 2 从 'TCHAR' 转换为 'LPCVOID'
有没有办法用不同的代码来完成我想做的事情?帮助将不胜感激。
您一定是在使用旧的编译器,因为 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);