刚刚在VS2010添加了CMFCLinkCtrl控件。这就是一个连接控件,连接可以是网络连接或者是本地路径。
直接用没问题,只要关联一个变量马上出现了如下的内存泄漏。
Detected memory leaks!
Dumping objects ->f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {364} normal block at 0x0066E7A0, 164 bytes long.
Data: < V> 00 00 00 00 00 00 00 00 C5 9D 1C 81 98 CF A0 56
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\map_sp.cpp(83) : {363} normal block at 0x0066A330, 68 bytes long.
Data: < f > 00 00 00 00 A4 E7 66 00 00 00 00 00 00 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtooltipmanager.cpp(70) : {362} client block at 0x0066A628, subtype c0, 144 bytes long.
a CToolTipCtrl object at $0066A628, 144 bytes long
Object dump complete.
搞了半天想不出什么原因,但是发现只要不关联变量,直接操作就可以避免这个问题啦。像这样的:
GetDlgItem(IDC_MFCLINK1)->ShowWindow(SW_SHOW);
((CMFCLinkCtrl*)GetDlgItem(IDC_MFCLINK1))->SetURL(_T("www.baidu.com"));