2016-03-28 58 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是非标准的。 –