???????????????????????????????????й??????MFC????κη?????

??????????????й?

??????????????й???????????У?????????????????????new????ж????????Ρ???????????У??????????????????

?????? ??????????????????????ClassFactory???????????????????????????new??????????????λ????new????????????л?????ж???????

?????? COM???????????COM???????Reference Count??????????????????????new????????????????Release????????????????????

??????????????e???????????λ???й???

???????С?

?????????й??????????????????????·?????λ???й??????????????????????й???????????Ч????Ρ?

????????????????crtdbg????????й????棺

Detected memory leaks!
Dumping objects ->
c:/work/test.cpp(186) : {52} normal block at 0x003C4410?? 40 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.


????????????????й?????????????????????????к?????????????????????????????{52}????????????????????????

??????????????????????????????????????????{52}???????52?????????????????й???????????????new????Σ?????????52?Σ?????????????????????????????C?????????????????:)

????????п?????????ó??????е???52??????????????????????????????????????????crtdbg??????????????????? long _CrtSetBreakAlloc(long nAllocID)?????????????

inline void EnableMemLeakCheck()
{
   _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
}

#ifdef _DEBUG
#define new   new(_NORMAL_BLOCK?? __FILE__?? __LINE__)
#endif

void main()
{
   EnableMemLeakCheck();
   _CrtSetBreakAlloc(52);
   int* leak = new int[10];
}
 
????????????????е? int* leak = new int[10]; ????????????????????????????????£???????????????????????????????????????????????к??м????????????й?????????к??????????????????????_CrtSetBreakAlloc???????????????????????????????????????????????????????????????????????????????????????????????????????Σ????????????????????????????????????????????й?????????????£??????????????????5????????????????

?????????_CrtSetBreakAlloc???????????й????????????????й??????????????????仯????????????????????3??????????????????????£?????????????????