Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Линкер не видит id интерфейса


Автор: xTr1m 1.3.2012, 15:10
Доброго времени суток. Есть библиотека, для написан COM. При попытке получить интерфейс

Код

    DWORD clsctx ;
    clsctx = CLSCTX_INPROC_SERVER ;

    HRESULT hr = CoInitialize(NULL) ;

    CLSID clsid;
    hr = CLSIDFromProgID(L"StepManagerX.StepManager", &clsid);
    
    {
        CComPtr<IAPI> pApi = NULL; 
        hr = CoCreateInstance(    clsid,
                            NULL, clsctx, 
                            IID_IAPI, (void**)&pApi) ;

    }


получаю ошибку "error LNK2001: unresolved external symbol _IID_IAPI". Хедер с _IID_IAPI подключен, соотвествующий lib тоже.
В хедере объявлено так:
Код

EXTERN_C const IID IID_IAPI;


замечено, что если вначале написать так
Код

#import    "API.tlb"  named_guids raw_interfaces_only

то все линкуется, но при это возвращается результат E_NOINTERFACE. В общем буду благодарен за любую помощь.

Автор: xvr 2.3.2012, 12:08
Цитата(xTr1m @  1.3.2012,  15:10 Найти цитируемый пост)
Хедер с _IID_IAPI подключен, соотвествующий lib тоже.
В хедере объявлено так:
const IID IID_IAPI;
Видимо IID_IAPI в 'соотвествующем либе' все же отсуствует

Цитата(xTr1m @  1.3.2012,  15:10 Найти цитируемый пост)
то все линкуется, но при это возвращается результат E_NOINTERFACE.

Видимо COM сервер не зарегестрирован

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)