很久没搞VC了。。现在搞下有问题了。。
文件内容如下。。
[ftp]
host=127.0.0.1
UserName=xin程序如下
char buf1[MAX_PATH];
GetCurrentDirectory(MAX_PATH,buf1);
CString strFileName = buf1;
if(strFileName[strFileName.GetLength() - 1] != '\\')
strFileName += "\\";
strFileName += "setting.ini";
char buf[1024];
int len = GetPrivateProfileString("ftp","host","",buf,1024,strFileName);
buf[len] = 0;
MessageBox(buf);
结果出不来我把文件名那里改成".\\setting.ini"也不可以。。直接打绝对路径进去就可以。。
我是直接在DEBUG文件夹下运行程序的。。那ini文件也在那里。。请指教
文件内容如下。。
[ftp]
host=127.0.0.1
UserName=xin程序如下
char buf1[MAX_PATH];
GetCurrentDirectory(MAX_PATH,buf1);
CString strFileName = buf1;
if(strFileName[strFileName.GetLength() - 1] != '\\')
strFileName += "\\";
strFileName += "setting.ini";
char buf[1024];
int len = GetPrivateProfileString("ftp","host","",buf,1024,strFileName);
buf[len] = 0;
MessageBox(buf);
结果出不来我把文件名那里改成".\\setting.ini"也不可以。。直接打绝对路径进去就可以。。
我是直接在DEBUG文件夹下运行程序的。。那ini文件也在那里。。请指教
应该是buf1不对,不要用GetCurrentDirectory获得当前目录,用GetModuleFileName获得全路径,然后解析出路径.
strcpy(strrchr(buf1, '\\'), "\\setting.ini");
char buf[1024];
int len = GetPrivateProfileString("ftp","host","",buf,1024,buf1);
buf[len] = 0;
MessageBox(buf);
strcat( g____INI_name, ( LPCTSTR )GetMyPath() );
strcat( g____INI_name, "setting.ini" );
CString
GetMyPath( void )
{
CString s;
char tt[ 512 ] = "";
int i = strlen( __argv[ 0 ] );
memcpy( tt, __argv[ 0 ], i ); while( tt[ i ] != '\\' )
{
tt[ i ] = 0;
i--;
} s = ( CString )tt;
return s;
}
char buf1[MAX_PATH];
GetModuleFileName(NULL,buf1,MAX_PATH);
int i = strlen(buf1);
buf1[i] = 0;
while(buf1[i] != '\\')
{
buf1[i] = 0;
--i;
}
strcat(buf1,"setting.ini");
char buf[1024];
MessageBox(buf1);
int len = GetPrivateProfileString("ftp","host","",buf,1024,buf1);
buf[len] = 0;
MessageBox(buf);
代码如上在VC上直接运行就可以在DEBUG目录下运行就不可以了。。弹出来的路径也是一样的。。