我为了获得当前路径。使用了GetCurrentDirectory()函数。
GetCurrentDirectory (DWORD nBufferLength , LPSTR lpBuffer )
我不知道lpBuffer应该怎样写?
我这样写:
LPSTR m_str;
GetCurrentDirectory(256,m_str);编译器报错,怎么会事呢?主要是LPSTR的意义?
GetCurrentDirectory (DWORD nBufferLength , LPSTR lpBuffer )
我不知道lpBuffer应该怎样写?
我这样写:
LPSTR m_str;
GetCurrentDirectory(256,m_str);编译器报错,怎么会事呢?主要是LPSTR的意义?
DWORD nBufferLength,
LPTSTR lpBuffer
);TCHAR m_str[256];
GetCurrentDirectory(256,m_str);
{
//取得当前的工作路径
CString sPath;
CString strDBFile;
//得到当前路径,
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer();//剩余的空间被释放掉
int nPos=sPath.ReverseFind ('\\');//寻找最后一个匹配的"\"
sPath=sPath.Left(nPos);//取字符串前nPos个字符,变成进程的当前目录,(如c:\dd\ccc变成c:\dd\) strDBFile = sPath;
return _T(strDBFile);//传递当前目录
}
m_str=malloc(MAX_PATH);
GetCurrentDirectory(MAX_PATH,m_str)
你的m_str没有分配空间,LPSTR只是一个字符串指针
char buffer[100];
GetCurrentDirectory(100,buffer);
GetCurrentDirectory(100,buffer);
AfxMessageBox(buffer);
你要这样写也可以,但必须给这个指针分配空间:
LPSTR m_str;
m_str = new char[256];
GetCurrentDirectory(256,m_str);
记住在用完以后,调用delete m_str; 释放内存空间就可以了。
GetCurrentDirectory(sizeof(cPath)-1, cPath);
GetCurrentDirectory(100,buffer);你那个指针无效