我想打开一个和.EXE文件在同一目录下的一个文件,应该怎么做?问题是幼稚了一点,但我已经试了很多我能想到的方法,都不行。 

解决方案 »

  1.   

    CFile file;
    if (file.Open("temp.abc",CFile::Read|CFile:modeCreate))
    {
        .......
    }
    else
       MessageBox("Can not Open file");
      

  2.   

    ANSI C中有:
    _fmode=   ;//大概如此你可以查一下msdn
    _open("",1);
    _fmod 指明打开的模式,_open的第一个参数是文件的路径如果和exe在同一个目录下就是文件名就行了第二个参数指明是以何种方式打开是读,写还是读写。
      

  3.   

    你试了那些方法,难道用fopen都不行?你的操作系统有没有给你读写该文件的权限
    你用其他的工具可否打开它?
      

  4.   

    用这个函数肯定行
    CString getcurapppath()
    {
    int mylen = 0,len;
    TCHAR exeFullPath[MAX_PATH];
    TCHAR fc;
    CString s1,s11;
    GetModuleFileName(NULL,exeFullPath,MAX_PATH); //得到程序包含*.exe路径名.
    s1 = (CString)exeFullPath;
    len = s1.GetLength()-1;
    for(int m=len; m>=0; m--)
    {
    fc = s1.GetAt(m);
    if(fc == '\\')
    {
    mylen = m + 1;
    break;
    }
    }
    s1.Delete(mylen,len+1-mylen); //得到去掉了*.exe的路径名.
    return s1;

    }
      

  5.   

    CString GetExePath()////////////////////////////////
    {
    char pathbuf[5000];
    int pathlen = ::GetModuleFileName(NULL,pathbuf,5000); while(TRUE)
    {
    if (pathbuf[pathlen--]=='\\')
    break;
    }
    pathbuf[++pathlen] = 0x0;
    CString fname = pathbuf;
    return fname;
    }
    用此函数可以得到EXE文件的绝对路径,然后再用fopen来打开
      

  6.   

    获得执行路径GetCommandLine(void)
      

  7.   

     接楼上:
       将文件放入debug目录.
      

  8.   

    char scrpath[MAX_PATH];
    //取得正在执行的exe文件的全路径
    GetModuleFileName(AfxGetInstanceHandle(),scrpath,MAX_PATH); 
    //将全路径后的文件名去掉
    *(strrchr(scrpath,'\\')+1) = 0;
    //加入要打开的文件名
    strcat(scrpath,"chopper.bmp");
    //用字符串scrpath做全路径打开文件即可
      

  9.   

    谢谢大家,我已经解决了,使用去的绝对路径后去掉*.EXE的方法作的。