2013-02-10 2 views
1

Я запускаю Visual Studio 2012 на моей машине с Windows 7.CoCreateInstance of IWICImagingFactory

Когда я бегу SimpleDirect2dApplication здесь: http://technet.microsoft.com/en-us/subscriptions/dd940321%28v=vs.85%29.aspx

hr = CoCreateInstance(
    CLSID_WICImagingFactory, 
    NULL, 
    CLSCTX_INPROC_SERVER, 
    IID_PPV_ARGS(&m_pWICFactory) 
    ); 

CoCreateInstance терпит неудачу с «Класс не зарегистрирован» и PTR на завод 0.

Любая помощь будет оценена.

+0

Таким образом, после задавая вопрос, я сразу нашел ответ здесь Http: //social.msdn. microsoft.com/Forums/en-US/windowswic/thread/e542d34a-a04b-455e-bd5b-957f162bab94/ CLSID_WICImagingFactory необходимо изменить на CLSID_WICImagingFactory1 , чтобы он работал на windows7. – Huntsman

+0

Собственно, это зависит от версии SDK. У старых SDK есть 'CLSID_WICImagingFactory', указывающие на исправление CLSID, и код работает нормально. Неожиданное, неочевидное и, возможно, неточное изменение в Windows SDK. –

+1

Это правильно определено в wincodec.idl, они имеют одинаковые контуры. Возможно, это было нарушено в бета-версии SDK версии 8, это не сейчас. –

ответ

-1

с помощью этого

#if defined(CLSID_WICImagingFactory) 
#undef CLSID_WICImagingFactory 
#endif 

, а затем вы можете передать этот

Приведи: http://skia.googlecode.com/svn/trunk/src/ports/SkImageDecoder_WIC.cpp

+0

Ссылка в этом ответе сломана. – stakx

+0

Трудно понять, как должно работать решение, предложенное в этом ответе ('# undef'-ining в макросе' CLSID_WICImagingFactory', если есть). Не могли бы вы рассказать? – stakx

Смежные вопросы