如题...^_^

解决方案 »

  1.   

    The GetCurrentDirectory function retrieves the current directory for the current process. DWORD GetCurrentDirectory(
      DWORD nBufferLength,  // size, in characters, of directory buffer
      LPTSTR lpBuffer       // pointer to buffer for current directory
    );
      

  2.   

    DWORD GetModuleFileName(
      HMODULE hModule,    // handle to module to find filename for
      LPTSTR lpFilename,  // pointer to buffer to receive module path
      DWORD nSize         // size of buffer, in characters
    );
     
    Parameters
    hModule 
    Handle to the module whose executable filename is being requested. If this parameter is NULL, GetModuleFileName returns the path for the file used to create the calling process. 
    lpFilename 
    Pointer to a buffer that is filled in with the path and filename of the given module. 
    nSize 
    Specifies the length, in characters, of the lpFilename buffer. If the length of the path and filename exceeds this limit, the string is truncated. 
    //这个处理一下也可以
      

  3.   

    如果是指获取可执行文件的路径,
    GetModuleFileName就可以了,然后截取后面的路径就行了
      

  4.   

    *^_^*我是菜鸟~~~请问用GetModuleFileName()获取可执行文件的路径后,如何截取相应部分?请大家帮帮忙...   多谢了!
      

  5.   

    如何截取相应部分很简单,恐怕各位老鸟不肯解答,我这CSDN新鸟本也不想态度甚佳,非恶人。
    char ch[256];
    GetModuleFileName(hModule,ch,255);
    for(int i=strlen(ch);i && ch[i]!='\\';i--);
    ch[i]=0;C似易似难人难断
      

  6.   

    TCHAR szAppPath[MAX_PATH];
    memset(szAppPath, 0, MAX_PATH);
    GetModuleFileName(NULL, szAppPath, MAX_PATH);
    CString str;
    str.Format("%s", szAppPath);
    str = str.Left(str.ReverseFind('\\') + 1);
    以上只是一种方法,其它的自己再慢慢研究。
      

  7.   

    _splitpath, _wsplitpath
    Break a path name into components.void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );void _wsplitpath( const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *fname, wchar_t *ext );Routine Required Header Compatibility 
    _splitpath <stdlib.h> Win 95, Win NT 
    _wsplitpath <stdlib.h> or <wchar.h> Win 95, Win NT 
    For additional compatibility information, see Compatibility in the Introduction.LibrariesLIBC.LIB Single thread static library, retail version 
    LIBCMT.LIB Multithread static library, retail version 
    MSVCRT.LIB Import library for MSVCRT.DLL, retail version 
    Return ValueNoneParameterspathFull pathdriveOptional drive letter, followed by a colon (:)dirOptional directory path, including trailing slash. Forward slashes ( / ), backslashes ( \ ), or both may be used.fnameBase filename (no extension)extOptional filename extension, including leading period (.)ResThe _splitpath function breaks a path into its four components. _splitpath automatically handles multibyte-character string arguments as appropriate, recognizing multibyte-character sequences according to the multibyte code page currently in use. _wsplitpath is a wide-character version of _splitpath; the arguments to _wsplitpath are wide-character strings. These functions behave identically otherwise.Generic-Text Routine MappingsTCHAR.H Routine  _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined 
    _tsplitpath _splitpath _splitpath _wsplitpath 
    Each argument is stored in a buffer; the manifest constants _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, and _MAX_EXT (defined in STDLIB.H) specify the maximum size necessary for each buffer. The other arguments point to buffers used to store the path elements. After a call to _splitpath is executed, these arguments contain empty strings for components not found in path. You can pass a NULL pointer to _splitpath for any component you don’t need.Example/* MAKEPATH.C */#include <stdlib.h>
    #include <stdio.h>void main( void )
    {
       char path_buffer[_MAX_PATH];
       char drive[_MAX_DRIVE];
       char dir[_MAX_DIR];
       char fname[_MAX_FNAME];
       char ext[_MAX_EXT];   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" );
       printf( "Path created with _makepath: %s\n\n", path_buffer );
       _splitpath( path_buffer, drive, dir, fname, ext );
       printf( "Path extracted with _splitpath:\n" );
       printf( "  Drive: %s\n", drive );
       printf( "  Dir: %s\n", dir );
       printf( "  Filename: %s\n", fname );
       printf( "  Ext: %s\n", ext );
    }
    OutputPath created with _makepath: c:\sample\crt\makepath.cPath extracted with _splitpath:
      Drive: c:
      Dir: \sample\crt\
      Filename: makepath
      Ext: .c
      

  8.   

    TCHAR *path = new char[MAX_PATH+1];
    GetModuleFileName(::GetModuleHandle(NULL),path,MAX_PATH);
    strProgramPath = path; // 当前的路径名+你的程序名
    strProgramPath.TrimRight(str);//str就是你的完整的程序名,例如A.exe,str = "A.exe"
    delete [] path;
      

  9.   

    CString sPath;
    GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
    sPath.ReleaseBuffer();
    int nPos;
    nPos=sPath.ReverseFind ('\\');
    sPath=sPath.Left(nPos);sPath即为去掉.exe的路径,想得到进一步的路径,方法同上