C++ 将两个字符串添加到一起以创建新的LPSTR

C++ 将两个字符串添加到一起以创建新的LPSTR,c++,winapi,C++,Winapi,此代码不可编译: LPSTR a1 = "a1"; LPSTR lpResult = a1 + "a2"; 如何获得指向“a1a2”字符串的长指针lpResult?一个选项是使用std::string连接。您还可以使用Microsoft的功能 下面是一个例子: #include <Strsafe.h> //... later in your code: LPSTR a1 = "a1"; LPSTR a2 = "a2"; TCHAR dest[ 5 ]; StringCchCo

此代码不可编译:

LPSTR a1 = "a1";
LPSTR lpResult = a1 + "a2";

如何获得指向“a1a2”字符串的长指针lpResult

一个选项是使用std::string连接。您还可以使用Microsoft的功能

下面是一个例子:

#include <Strsafe.h>

//... later in your code:

LPSTR a1 = "a1";
LPSTR a2 = "a2";

TCHAR dest[ 5 ];
StringCchCopy(dest, 5, a1);  // copy "a1" into the buffer
StringCchCat(dest, 5, a2);   // concatenate "a2" into the buffer
#包括
//... 稍后在代码中:
LPSTR a1=“a1”;
LPSTR a2=“a2”;
TCHAR dest[5];
StringCchCopy(目的地,5,a1);//将“a1”复制到缓冲区中
StringCchCat(目的地,5,a2);//将“a2”连接到缓冲区中

您理应获得。。。。关键是数组字符串不是这样工作的<但代码>标准::字符串不起作用。在这里,您需要分配新的内存来存储整个字符串,然后将这两部分复制到其中以使其正常工作。“长指针”部分是历史性的:在长指针和Windows上不再有区别。许多语言允许你用+运算符连接字符串,但不能用C。正如@Rup提到的,你可以用
std::string