C++ VS2005 下 加载config.ini 配置文件
config.ini放在dbug文件夹下和程序放一起,动态路径应该怎么写?GetPrivateProfileString("SYSTEM","REMOTE","",rem...
config.ini 放在dbug文件夹下和程序放一起, 动态路径应该怎么写?
GetPrivateProfileString("SYSTEM","REMOTE","",remote.GetBuffer(MAX_PATH),MAX_PATH,"这里路径怎么写\\config.ini"); 展开
GetPrivateProfileString("SYSTEM","REMOTE","",remote.GetBuffer(MAX_PATH),MAX_PATH,"这里路径怎么写\\config.ini"); 展开
1个回答
展开全部
int iRet;
CHAR mess[MAX_PATH];
CString str, temp;
SYSTEMTIME stime;
::GetModuleFileName(NULL, mess, MAX_PATH); // 获取当前路径主要是这个,然后再加上
str.Format(_T("%s"), mess);
iRet = str.ReverseFind('\\');
temp.Format(_T("%s"), str.Left(iRet));
str = temp + _T("\\dbug");
::CreateDirectory(str, NULL);
GetLocalTime(&stime);
wsprintf(mess, _T("%s\\config.ini), str);
改成你要的了。标准 呵呵
CHAR mess[MAX_PATH];
CString str, temp;
SYSTEMTIME stime;
::GetModuleFileName(NULL, mess, MAX_PATH); // 获取当前路径主要是这个,然后再加上
str.Format(_T("%s"), mess);
iRet = str.ReverseFind('\\');
temp.Format(_T("%s"), str.Left(iRet));
str = temp + _T("\\dbug");
::CreateDirectory(str, NULL);
GetLocalTime(&stime);
wsprintf(mess, _T("%s\\config.ini), str);
改成你要的了。标准 呵呵
追问
GetPrivateProfileString("SYSTEM","REMOTE","",remote.GetBuffer(MAX_PATH),MAX_PATH,"“+str+”");
这样写对吗?
追答
函数返回值为string的长度(long型),而从ini文件获得的字符串则保留在目的缓冲器中DWORD GetPrivateProfileString(
LPCTSTR lpAppName, //配置文件的section名
LPCTSTR lpKeyName, //配置文件的key名
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
其中各参数的意义:
前二个参数与 WritePrivateProfileString中的意义一样.
lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
nSize : 目的缓存器的大小.
lpFileName : 是完整的INI文件名.
下面是一个常见的出错原因:
GetPrivateProfileString怎么总是读不出来
--------------------------------------------------------------------------------
*.INI内容
[NETWORK]
ServerIP=100.100.100.53
程序:
main()
{
char ip[16];
DWORD num=0;
num=GetPrivateProfileString("NETWORK","ServerIP","", ip,sizeof(ip), "Server.ini");
cout<<num<<endl<<ip<<endl;
}
--------
num=GetPrivateProfileString("NETWORK","ServerIP","", ip,sizeof(ip), "Server.ini");
Server.ini这个文件放在哪里的?要放在与应用程序相同的目录下应该用".\\server.ini"
你看看是不是没有找到这个INI文件
-----------
VC中调试时,server.ini放在工程目录中;程序单独运行时,则需要放在跟exe同一个目录中。
因为从VC里启动程序,VC将程序的工作目录初始化为工程目录,而不是debug或release目录本身。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询