2013-04-19 5 views
0

Работа под Win7 SP1 с VS2010 и Microsoft SDK v7.0a. Если я создаю проект VS2010 для консольного приложения Win32, CreateInstance в зарегистрированной COM-библиотеке regsvr32.exe удастся. Если я создаю проект VS2010 для GUI MFC, то идентичный CreateInstance не будет работать с E_NOINTERFACE. Попробовав как Unicode, так и многобайтный, работает в обоих режимах для консольного приложения Win32, не работает оба пути для MFC GUI. Как это возможно?E_NOINTERFACE для MFC GUI не для консольного приложения Win32

Если I F11 через консольное приложение Win32, я в конце концов вижу, что CreateInstance попадает на QueryInterface в IUnknown [который успешно завершен]. Если я F11 через MFC GUI, он никогда не попадает на QueryInterface.

Я видел, что некоторые разговоры о версиях/обновлениях ADO являются релевантными, но вот одна система, которая преуспевает в консольном приложении Win32 и не работает для MFC GUI. Как?

Обновление: Я ошибочно допустил использование WinDDK comip.h вместо VS2010 comip.h. Но даже после исправления проблемы остается.

Также было обнаружено, что тот же проект и источник MFC GUI, скомпилированный на 64-битной машине, не сработает. Только моя 32-битная машина. Оба получат QueryInterface в стеке вызовов CreateInstance, но 32-битная машина возвращает сбой, тогда как 64-битная машина возвращает успех.

ответ

0

Любезность технической поддержки MSDN, я был просвещен, что MFC GUI не поддерживают «бесплатную потоковую передачу», которую требует COM.

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