Go to Tools->Extensions and Updates, download and install Using Visual Leak Detector:
Create a header file, named, for example, CommonTools.h containing the following:
#include "C:\Program Files (x86)\Visual Leak Detector\include\vld.h"
#pragma comment(lib, "C:\\Program Files (x86)\\Visual Leak Detector\\lib\\Win32\\vld.lib")
Include CommonTools.h in at least one file in all the C++ projects in your solution. Build debug version of the program. Visual Leak Detector will write the information on memory leaks to Output window when the program exits.
I’ve been working on some MFC application and to apply my WPF knowledge I added a WPF control written in C# to my MFC CView with the following code:
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
if (CView::OnCreate(lpCreateStruct) == -1)
gcroot<hwndsource ^> hwnd_source = gcnew HwndSource(0, WS_VISIBLE | WS_CHILD, 0, 0, 0, "HwndSource", IntPtr(m_hWnd));
MyWpfControl ^ control = gcnew MyWpfControl();
hwnd_source->RootVisual = control;
catch (Exception ^ ex)
String ^ msg = ex->Message;
All that I needed to do is to follow the steps described in this post: How do I host WPF content in MFC Applications, fix VS2012 bug described here, and got rid of std::mutex and std::lock_guard replacing them with the following classes using typedefs:
Fortunately, to compile BOOST under MS VC 2010 we need Visual Studio Command Prompt and five commands:
Navigate to BOOST directory, for example:
STL has auto_ptr<Type> class that automatically deletes a dynamically allocated C++ object when control leaves a block. Personally, I believe that auto_ptr<Type> typically used in simple scenarios as a local variable or a class member but theoretically it is even possible to declare a vector of auto_ptr<Type> because auto_ptr<Type> stores an ownership indicator and its copy constructor transfers the ownership from the instance being copied, so vector::push_back(…) and vector::resize(…) functions works correctly.