C++字符串到字节错误

C++ String to byte error

本文关键字:错误 到字节 字符串 C++      更新时间:2023-10-16

所以,我在C++中将字符串转换为字节,但是当它将其添加到注册表中时,它正在剥离exe部分但保留.,我不知道它有什么问题。

如果你想知道NXS是什么,它的值是"noerrorsplease.exe",类型是char。

char szFinal[] = "";
strcat(szFinal, (const char *)ExtractDirectory(filepath).c_str());
//Not needed: strcat(szFinal, "");
strcat(szFinal, nxs);
strcat(szFinal, ".exe");
        CString str;
        str = szFinal;
        str += ".exe";
        cout << str.GetString() << endl;
        const BYTE* pb = reinterpret_cast<const BYTE*>(str.GetString());
        cout << pb << endl;
        DWORD pathLenInBytes = *szFinal * sizeof(*szFinal);
        if(RegSetValueEx(newValue, TEXT("Printing Device"), 0, REG_SZ, (LPBYTE)pb, pathLenInBytes) != ERROR_SUCCESS)
        {
            RegCloseKey(newValue);
            cout << "error" << endl;
        }
        cout << "Possibly worked." << endl;
        RegCloseKey(newValue);

此代码

char szFinal[] = "";
strcat(szFinal, (const char *)ExtractDirectory(filepath).c_str());

已经无效。您定义了数组 szFina,只有一个字符是终止零。您不得使用它来复制任何字符串。在这些情况下,应使用 std::string 类型的对象。