我想在程序里面调用格式化对话框,找到这个API发现程序不能识别,包函了这个头文件也没有用,请大家帮帮忙!
但是我调用其它的SHELL API却很正常,如SHBrowseForFolder,这是为什么?
请给点详细解释,如果以后我还想用这些SHELL  API,最好怎么做?

解决方案 »

  1.   

    估计是你的shell32.dll版本的问题吧.需要5.0以后的版本
      

  2.   

    SHBrowseForFolder 4.0的版本就可以使用
      

  3.   

    DWORD return_value;
    return_value = SHFormatDrive(m_hWnd,
                                  Driver[0],
                                  SHFMT_ID_DEFAULT,
                                  SHFMT_OPT_SYSONLY);我在程序里面是这样操作的,问题出在哪里?
      

  4.   

    你没看我得回复吗?
    不一定是你代码的问题,你是使用的shell32版本可能不对.
      

  5.   

    4楼的意思是我的系统版本不对?但是我同学他用想同的API与系统却做出来了
     SHFORMATDRIVE   SHFormatDrive;
    HINSTANCE   hShell32   =   LoadLibrary("Shell32.dll");  
    int nResult;
    if(hShell32)   
    {   
    SHFormatDrive = (SHFORMATDRIVE)GetProcAddress(hShell32,   "SHFormatDrive");   
    if(SHFormatDrive)   
    {   
    //快速格式化格式化A盘   
    nResult   =   SHFormatDrive(m_hWnd,Driver[0],0xFFFF,0);   
    }   
    }   
    FreeLibrary(hShell32); 
    不过我没有看懂,拿到VC下编译结果没有识别定义,无语了