Я хочу, чтобы моя программа прочитала файл конфигурации, который находится рядом с файлом «exe». Это работает правильно, но когда программа запускается из системной папки из системного реестра в реестре (HKEY_CURRENT_USER), она просто не может прочитать файл. Файл и файл конфигурации находятся в одной папке в «Program Files (x86)». Вот фрагмент кода, запускаемого при запуске программы:
TCHAR szPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szPath);
char filepath[MAX_PATH];
sprintf(filepath, "%s%s", szPath, "\\data.cfg");
if(!(file = fopen(filepath, "rt")))
{
MessageBox(hwnd, "Could not load config file", "ERROR", MB_OK);
}
else
{
fgets(ReadLine, 20, file);
sscanf(ReadLine, "#KEYSTROKE %s", &ReadChar);
fgets(ReadLine2, 20, file);
sscanf(ReadLine2, "#STARTUP %s", &ReadChar2);
fgets(ReadLine3, 20, file);
sscanf(ReadLine3, "#CTRL %s", &ReadChar3);
fclose(file);
}
Любая помощь будет оценена. Заранее спасибо.
Вы должны использовать GetModuleFileName () и извлеките информацию о папке оттуда.
Других решений пока нет …