因此,我將字符串轉換爲C++中的字節,但是當它將它添加到註冊表中時,它將剝離exe部分但保留了。,我不知道它有什麼問題。C++字符串到字節錯誤
如果你想知道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);
哦,我修正了我自己的錯誤,呵呵。它正盯着我的臉!大聲笑 – user2948772
不得不將代碼替換爲dword pathleninbytes:DWORD pathLenInBytes = * str * sizeof(* str); – user2948772