我在本机c ++ win32应用程序中遇到了一些异常的内存泄漏。它有一个对话框,其中包含一些文本和一些URL链接,这些链接是使用SysLink控件制作的。问题是当我点击syslink(只是第一次并且无关紧要哪个链接)我的内存使用量增加约400-500kb(整个应用程序使用1.5MB)。打开URL的代码:
ShellExecute(NULL, L"open", item.szUrl, NULL, NULL, SW_SHOW);
有人可以解释为什么ShellExecute分配了这么多内存以及如何在通话后释放它。
答案 0 :(得分:2)
我不熟悉您正在使用的库,但如果它只发生一次而且仅用于第一次调用,则可能只是该库正在加载它需要的一些资源。
通常直到进程结束才释放内存。但你可以自己加载库然后卸载它,如果你担心内存使用...再次不熟悉你的库,但也可能有一个清理功能,以尽量减少内存使用。