Сохранение настроек в папку программы. Решено!

Вот небольшой пример за ошибки не пинать я только учусь!

#include <windows.h>
#include <iostream>
using namespace std;

char *RetSettingPath()
{
    setlocale(0, ""); //Включаем русский
    char *direktory = new char[MAX_PATH]; //Узнаем путь к программе
    GetCurrentDirectory(MAX_PATH, direktory);
    char *setting = "\\Setting.ini"; //Указываем название файла настроек
    char *settingpath = strcat(direktory, setting); //Клеим название к пути
    return settingpath; //Возвращаем полный путь к файлу настроек
}

char *IniRead(char *section, char *key){
    char *out = new char[512];
    GetPrivateProfileString(
    (LPCSTR)section, 
    (LPCSTR)key,
    NULL, 
    out,
    200, 
    (LPCSTR)RetSettingPath()//Принимаем полный путь к файлу настроек
    );
    return out;
}

bool IniWrite(char *section, char *key, char *data){
    return WritePrivateProfileString(
                                    (LPCSTR)section,
                                    (LPCSTR)key,
                                    (LPCSTR)data,
                                    (LPCSTR)RetSettingPath()//Аналогично
    );

}

int main(int argc, char *argv[])
{
    char *outdata = new char[512];
    if (IniWrite("Section", "Key", "Data"))
        outdata = IniRead("Section", "Key");

    cout << outdata;

    return 0;
}

Для компиляции в Visual Studio в параметрах проекта выключаем юникод.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.