我为了获得当前路径。使用了GetCurrentDirectory()函数。
GetCurrentDirectory (DWORD nBufferLength , LPSTR lpBuffer )
我不知道lpBuffer应该怎样写?
我这样写:
LPSTR m_str;
GetCurrentDirectory(256,m_str);编译器报错,怎么会事呢?主要是LPSTR的意义?

解决方案 »

  1.   

    DWORD GetCurrentDirectory(
      DWORD nBufferLength,
      LPTSTR lpBuffer
    );TCHAR m_str[256];
    GetCurrentDirectory(256,m_str);
      

  2.   

    CString CODBC::GetCurrentPath()
    {
    //取得当前的工作路径
        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);//传递当前目录
    }
      

  3.   

    LPSTR m_str;
    m_str=malloc(MAX_PATH);
    GetCurrentDirectory(MAX_PATH,m_str)
    你的m_str没有分配空间,LPSTR只是一个字符串指针
      

  4.   

    可以这样写:
    char buffer[100];
    GetCurrentDirectory(100,buffer);
      

  5.   

    char buffer[100];
    GetCurrentDirectory(100,buffer);
    AfxMessageBox(buffer);
      

  6.   

    LPSTR是指向字符数组的指针,它所指的实际上就是 CHAR *
    你要这样写也可以,但必须给这个指针分配空间:
    LPSTR m_str;
    m_str = new char[256];
    GetCurrentDirectory(256,m_str);
    记住在用完以后,调用delete m_str; 释放内存空间就可以了。
      

  7.   

    char cPath[MAX_PATH] = "\0";
    GetCurrentDirectory(sizeof(cPath)-1, cPath);
      

  8.   

    char buffer[100];
    GetCurrentDirectory(100,buffer);你那个指针无效