MFC6.0 7.0源代码中的一个BUG

位置在:

/Microsoft Visual Studio/VC98/MFC/SRC/OLEUI2.CPP

找到这个函数:

void AFXAPI AfxOleSetEditMenu(COleClientItem* pItem, CMenu* pMenu,
 UINT iMenuItem, UINT nIDVerbMin, UINT nIDVerbMax, UINT nIDConvert)

里面有一行程序,大概是:

pMenu->GetMenuString(iMenuItem, szBuffer, sizeof (szBuffer), MF_BYPOSITION);

应该是:

pMenu->GetMenuString(iMenuItem, szBuffer, sizeof (szBuffer) / sizeof (TCHAR), MF_BYPOSITION);

大家可以打开这个文件看看,这行程序在UNICODE下将可能出现写内存越界!

你可能感兴趣的:(mfc)