FILE* pFile = fopen('a.dat', 'wb');
怎么从pFile得到HANDEL,进行ReadFile之类的操作

解决方案 »

  1.   

    直接用CreateFile打开文件
    或使用fread读数据
      

  2.   

    _open_osfhandle
    主要功能是把系统的文件句柄转化为c运行库的文件指针void OSFileToCRTFile()
    {
    HANDLE hFile = CreateFile("c:\\test.dat", GENERIC_READ | GENERIC_WRITE, 0, NULL, 
    OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);char szText[] = "Hello world!\n";
    DWORD dwWritten;
    WriteFile(hFile, szText, strlen(szText), &dwWritten, NULL);FILE* pFile = NULL;
    int nHandle = _open_osfhandle((long)hFile, _O_TEXT | _O_APPEND);
    if (nHandle != -1)
    pFile = _fdopen(nHandle, "wt");if(pFile)
    {
    int n = fputs("write by FILE*!", pFile);
    fflush(pFile);//立即写入文件
    // n == 0
    }CloseHandle(hFile);
    }
    但是反过来怎么用.还真不知道.不如用CreateFile打开文件
      

  3.   

    long _get_osfhandle( 
       int fd 
    );(HANDLE) _get_osfhandle( _fileno(fp));