【发布时间】:2016-02-26 00:07:55
【问题描述】:
我正在使用 GetPrivateProfileStringA 从 .ini 文件中读取一些内容。我有一些其他的类,我将东西与字符串数组一起保存。我必须像这样使用它来将正确的字符串放入 ControlAlt 数组:
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]的类型是什么? -
你明白指针和数组的区别吗?
-
ControlAlt[] 是一个字符串数组。另外,指针呢? scriptControl 是一个指针,而 ControlAlt 只是一个字符串数组。
-
你的意思是
std::string的数组吗? -
是的:
std::string ControlAlt[SIZEOF_ControlType];