我在 native c++ win32 应用程序中遇到一些不寻常的内存泄漏。它有一个对话框,其中包含一些文本和一些 URL 链接,这些链接是使用 SysLink 控件制作的。问题是当我单击系统链接时(仅是第一次,与哪个链接无关)我的内存使用量增加了大约 400-500kb(整个应用程序使用 1.5MB)。打开网址的代码:
ShellExecute(NULL, L"open", item.szUrl, NULL, NULL, SW_SHOW);
谁能解释一下为什么 ShellExecute 会分配这么多内存,以及我如何在调用后释放它。
最佳答案
我不熟悉您正在使用的库,但如果它只发生一次并且仅在第一次调用时发生,那么很可能只是库正在加载它需要的一些资源。
通常直到进程结束才会释放内存。但是如果您担心内存使用,您可以自己加载库然后卸载它……再次不熟悉您的库,但可能还提供了一个清理功能来最大限度地减少内存使用。
关于c++ win32 SysLink 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183932/