2016-03-28 57 views
0

我有一個用於我的C++應用程序的settings.ini文件,我的一個用戶Windows \ Temp中斷了,導致它搞亂了他。所以我打算將它移動到他的用戶文件夾中。所以我想在下面看到的全局變量部分做一個簡單的腳本。我收到錯誤消息「顯式類型丟失(假設爲'int')」。我是新來這個所以可能有人請幫助我瞭解什麼是錯的:) 是的,我知道有更好的方法,然後使用GetPrivateProfileIntA和全局變量是不好的,但我的目的,它的工作原理:)在全局變量中定義LPCSTR時顯式類型缺失(假定爲'int')。

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是非標準的。 –