【发布时间】:2019-11-02 22:00:30
【问题描述】:
所以我决定培养一个新的爱好,因为我负担不起制造 PC 的费用,但到目前为止,我正在尝试创建一个简单的基于控制台的程序,该程序可以从 ini 文件中读取信息,但它似乎无法读取它根本没有,而是只输出默认值。和随机整数。
char* ReadINI(const char* sSection, const char* sSub, const char* sDefaultValue)
{
char* sResult = new char[255];
memset(szResult, 0x00, 255);
GetPrivateProfileString( sSection, sSub, sDefaultValue, sResult, 255, ".\\config.ini");
return sResult;
}
int s_width = (int)ReadINI("CONFIGURATION", "WIN_WIDTH", 0);
int s_height = (int)ReadINI("CONFIGURATION", "WIN_HEIGHT", 0);
const char* value = ReadINI("CONFIGURATION", "WIN_NAME", "null");
这是我作为调试方式的输出,因此用户知道应用程序已正确读取那里的设置。
std::cout << "Width: " << s_width << "\n"; // Displays random integer
std::cout << "Height: " << s_height << "\n"; // Displays random integer
std::cout << "Name: " << value << "\n "; // Displays null
这是我的 .ini 文件
[CONFIGURATION]
WIN_NAME="Notepad"
WIN_WIDTH="800"
WIN_HEIGHT="600"
【问题讨论】:
-
我没有意识到
GetPrivateProfileString仍然受支持。哇!在 Windows 中真的没有任何东西会消失吗? -
int s_width = (int)ReadINI("CONFIGURATION", "WIN_WIDTH", 0);不对。您可能想使用atoi -
@user4581301 这是使 Windows 成功的原因之一:可靠地确保旧代码不会损坏。