Я использую GetPrivateProfileStringA для чтения некоторых вещей из файла .ini. У меня есть другой класс, где я сохраняю вещи вместе со строковым массивом. Я должен использовать его так, чтобы получить правильную строку в массив ControlAlt:C++ - Использование GetPrivateProfileString без буфера
char buffer[24];
GetPrivateProfileStringA("CONTROLS",
"ShiftUpAlt",
"LeftThumb",
buffer,
(DWORD)24,
"./Gears.ini");
scriptControl->ControlAlt[ScriptControls::ControlType::ShiftUp] = buffer;
Я попытался положить его непосредственно, например, так:
GetPrivateProfileStringA("CONTROLS",
"ShiftUpAlt",
"LeftThumb",
(LPSTR)scriptControl->ControlAlt[ScriptControls::ControlType::ShiftUp],
(DWORD)24,
"./Gears.ini");
Но тогда значение в ControlAlt является LPSTR, который позже дает осложнения при сравнении с соответствующей строкой. Есть ли способ не использовать буфер для этого?
ControlAlt определяются как std::string ControlAlt[SIZEOF_ControlType];
Каков тип 'scriptControl-> ControlAlt [ScriptControls :: ControlType :: ShiftUp]'? – MikeCAT
Вы понимаете разницу между указателем и массивом? – IInspectable
ControlAlt [] - это строковый массив. Кроме того, как насчет указателей? scriptControl - это указатель, но ControlAlt - это просто массив строк. – ikt