使用VC6.0 把我的脑袋都搞大了,主要是 字符串的问题.
下面是使用GetCurrentDirectory的经验.它的主要功能是返回你正在运行的程序的当前目录.
函数定义:
DWORD GetCurrentDirectory(
DWORD nBufferLength , // size, in characters, of directory buffer
LPTSTR lpBuffer // pointer to buffer for current directory
);
DWORD nBufferLength , // size, in characters, of directory buffer
LPTSTR lpBuffer // pointer to buffer for current directory
);
int i = GetCurrentDirectoryW(0,NULL); //先把两个参数设为0,NULL用来返回目录的字符数.
WCHAR dir[100]; //
关键就在这里, 函数定义中第二个参数用来保存目录的字符串,类型为LPTSTR,如果我们直接声明一个变量 LPTSTR dir的话,能通过编译,但是在执行的时候会发生 access violation的错误.(我声明的char dir[100]vc++.net 2005中只得到路径的第一个字母,改为WCHAR后问题解决。----zskcy)
GetCurrentDirectory(i,dir);
printf("当前目录:%S/n",dir); //显示
wcscat(dir, _T( //yourfilename.txt)); //这里是把当前目录和一个文件结合起来,得到文件的绝对路径
printf("需要的网络协议文件:%S/n",dir); //显示
printf("当前目录:%S/n",dir); //显示
wcscat(dir, _T( //yourfilename.txt)); //这里是把当前目录和一个文件结合起来,得到文件的绝对路径
printf("需要的网络协议文件:%S/n",dir); //显示
原来我就是声明的一个LPTSTR dir来保存目录,无法把目录字符串保存到dir中,返回总是空.并且wcscat好象也会出错.