Полагаю, вы экспериментируете с вспомогательной библиотекой C ++.
Я столкнулся с точно такой же проблемой около года назад.
Мой обходной путь состоял в том, чтобы создать локальную временную переменную, запустить создание фабрики с этой переменной в качестве цели, а затем скопировать значение в мой вспомогательный класс, как показано ниже:
HRESULT HResult = DWriteCreateFactory (
DWRITE_FACTORY_TYPE_SHARED,
__uuidof( IDWriteFactory ),
reinterpret_cast<IUnknown**>( &pTempFactory )
);
if( HResult != 0 )System::Runtime::InteropServices::Marshal::ThrowExceptionForHR (HResult);
pBaseFactory = pTempFactory;
Я не уверен, что это элегантное решение, но оно сработало для меня.