2016-03-28 90 views
0

У меня есть файл settings.ini для моего приложения на C++, как когда-либо один из моих пользователей Windows \ Temp был сломан, в результате чего он запутывается для него. Поэтому я собирался переместить его в папку для пользователей. Поэтому я хотел сделать простой скрипт в разделе глобальных переменных, как показано ниже. Я получаю сообщение об ошибке «Явный тип отсутствует (« int »предполагается)». Я новичок в этом, так может кто-то пожалуйста, помогите мне понять, что не так :) Да я знаю, что есть более эффективные способы затем с помощью GetPrivateProfileIntA, и глобальные вары плохо, но для моих целей это работает :)Явный тип отсутствует (предполагается 'int'), определяющий LPCSTR в глобальных vars.

int setloc = GetPrivateProfileIntA("C:\\Users\\loc.ini", "locdir", 0, "locdir"); 

LPCSTR adsf; 

checkloc(); 

void checkloc(){ 
    if (setloc == 1){ 
     adsf = "C:\\Users\\settings.ini"; 
    } 
    else{ 
     adsf = "C:\\Windows\\Temp\\settings.ini"; 
    } 
} 

ответ

2

Объявление checkloc(); не указало тип, и компилятор предполагает, что вы имеете в виду, что он возвращает int (это разрешено на C, а не на C++). Просто указать тип возвращаемого void, чтобы исправить вашу проблему

LPCSTR adsf; 

void checkloc(); 

Однако, нет действительно никакого смысла в объявлении функции, а затем сразу же его определения. Определение может также служить в качестве декларации, поэтому в вашем случае лучше всего удалить строку checkloc();

+1

Предполагая, что он компилируется с помощью Visual Studio, сообщение об ошибке, скорее всего, похоже на ошибку C4430: отсутствующий спецификатор типа - предполагается int. Примечание: C++ не поддерживает default-int'. Кажется, предполагается 'int', поэтому он может продолжить проверку кода на наличие ошибок, а затем отказаться от компиляции, потому что int int нестандартен. –

Смежные вопросы