代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_C++

调用GetOpenFileName这个函数后 程序 的内存占用一直很高 该如何解决呢

发布时间:2019-08-20浏览(2239)

    调用GetOpenFileName这个函数后 程序 的内存占用一直很高 该怎么解决呢 ?
    本帖最后由 yy282021238 于 2013-05-15 15:28:59 编辑
    我写了一个音乐播放器的列表框控件 ,添加文件的时候使用了GetOpenFileName,然后内存占用就居高不下。

    我测试过  如果这时再分配大量内存,程序的内存占用也不会增加,也就是说其实有很大一部内存是空闲内存,随时可以再分配,  但却一直被程序占用着 


    请问  如何让程序将这些空闲内存归还给系统???





    谢谢各位了!






    ------解决思路----------------------
    GetOpenFileName
    The GetOpenFileName function creates an Open common dialog box that lets the user specify the drive, directory, and the name of a file or set of files to open. 

    BOOL GetOpenFileName(
      LPOPENFILENAME lpofn   // address of structure with initialization 
                             // data
    );
     
    Parameters
    lpofn 
    Pointer to an OPENFILENAME structure that contains information used to initialize the dialog box. When GetOpenFileName returns, this structure contains information about the user's file selection. 
    Return Values
    If the user specifies a filename and clicks the OK button, the return value is nonzero. The buffer pointed to by the lpstrFile member of the OPENFILENAME structure contains the full path and filename specified by the user.

    If the user cancels or closes the Open dialog box or an error occurs, the return value is zero. To get extended error information, call the CommDlgExtendedError function, which can return one of the following values: 

    CDERR_FINDRESFAILURE CDERR_NOHINSTANCE 
    CDERR_INITIALIZATION CDERR_NOHOOK 
    CDERR_LOCKRESFAILURE CDERR_NOTEMPLATE 
    CDERR_LOADRESFAILURE CDERR_STRUCTSIZE 
    CDERR_LOADSTRFAILURE FNERR_BUFFERTOOSMALL 
    CDERR_MEMALLOCFAILURE FNERR_INVALIDFILENAME 
    CDERR_MEMLOCKFAILURE FNERR_SUBCLASSFAILURE 


    Remarks
    Beginning with Windows 95 and Windows NT version 4.0, the default Open dialog box provides user-interface features that are similar to the Windows Explorer. You can provide an OFNHookProc hook procedure for an Explorer-style Open dialog box. To enable the hook procedure, set the OFN_EXPLORER and OFN_ENABLEHOOK flags in the Flags member of the OPENFILENAME structure and specify the address of the hook procedure in the lpfnHook member. 

    Windows 95 and Windows NT continue to support the old-style Open dialog box for applications that want to maintain a user-interface consistent with the Windows 3.1 or Windows NT 3.51 user-interface. To display the old-style Open dialog box, enable an OFNHookProcOldStyle hook procedure and ensure that the OFN_EXPLORER flag is not set.

    To display a dialog box that allows the user to select a directory instead of a file, call theSHBrowseForFolder function