C++ c++;添加带有WriteFile错误的文本变量

C++ c++;添加带有WriteFile错误的文本变量,c++,writefile,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]; StringCchCop

我的问题是,当我使用此选项时:

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”


我想用不同的代码来完成我想做的事情,还有其他方法吗?非常感谢您的帮助。

您必须使用旧的编译器,因为C2106是错误的。应该是

错误C3863:数组类型“TCHAR[5]”不可分配

当您:

TCHAR-strex[5]

您正在堆栈上创建一个包含五个字符的数组。strex是指向该数组的指针。您不能更改该指针。因此,当你:

strex=n

您要求将指针
n
分配给指针
strex
。如果需要指向
n
的指针,则:

TCHAR*strex=n

会有用的。但是您甚至不必这样做,您已经有了带有
n
的指针


WriteFile(myFile,n,(DWORD)(sizeof(n)),&x,NULL)

您必须使用旧的编译器,因为C2106是错误的错误。应该是

错误C3863:数组类型“TCHAR[5]”不可分配

当您:

TCHAR-strex[5]

您正在堆栈上创建一个包含五个字符的数组。strex是指向该数组的指针。您不能更改该指针。因此,当你:

strex=n

您要求将指针
n
分配给指针
strex
。如果需要指向
n
的指针,则:

TCHAR*strex=n

会有用的。但是您甚至不必这样做,您已经有了带有
n
的指针


WriteFile(myFile,n,(DWORD)(sizeof(n)),&x,NULL) 

数组不是C++中的LValk。因此,语句
strx=n
毫无意义,编译器对此抱怨是正确的。将
strex[5]
更改为简单的
strex
至少应在该代码中的任何地方标记警告和/或错误,并且应注意所有警告和/或错误。通过猜测学习C++是没有效率的。数组是C语言和C++语言中的第二类公民,不能被赋值为<代码> Strux= n;代码>。您必须单独复制每个元素。在C++中,你有了<代码> STD::String 。可以被分配。谢谢帮助WoZoCig和Bo Persson。C++中的数组不是LValk。因此,语句
strx=n
毫无意义,编译器对此抱怨是正确的。将
strex[5]
更改为简单的
strex
至少应在该代码中的任何地方标记警告和/或错误,并且应注意所有警告和/或错误。通过猜测学习C++是没有效率的。数组是C语言和C++语言中的第二类公民,不能被赋值为<代码> Strux= n;代码>。您必须单独复制每个元素。在C++中,你有“代码”> STD::String ,它可以被分配。谢谢你的帮助,谢谢你,你说的对,我试过你说的,而且它奏效了。我需要了解更多。谢谢你,你是对的,我试过你说的,并且成功了。我需要学习更多。