Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
TestBackgroundTask() throw()
: m_count(1)
{
//Увеличиваем общее количество экземпляров объектов библиотеки
InterlockedIncrement(&m_objectsCount);
}
Внимательный читатель мог заметить странную деталь в конструкторах и деструкторах классов, а именно инкремент и декремент переменной m_objectsCount. Данную переменную я объявил сразу после директив using перед кодом классов. А используется она в экспортируемой библиотекой функции DllCanUnloadNow:
#include "pch.h"
#include "TestComponent.h"
//Импортируем пространство имён нашего компонента
using namespace ABI::NMSPC::TestComponent;
//Импортируем интерфейсы из пространства имён ABI::Windows::ApplicationModel::Background
using ABI::Windows::ApplicationModel::Background::IBackgroundTask;
using ABI::Windows::ApplicationModel::Background::IBackgroundTaskInstance;
//Переменная для хранения числа текущих экземпляров объектов библиотеки.
//Значение данной переменной будем изменять в конструкторах объектов реализации
//фоновой задачи и фабрики.
ULONG m_objectsCount = 0;
..................................................................
Создания Windows Runtime компонента на Visual C++