Есть mfc ActiveXнаписаный на VC 7.0. Надо его использовать в консольном приложении. Деля CoCreateInstance получаю объект, все хорошо но только пытаюсь вызвать любой метод ActiveX выдает exception. Проверил активыкс создается но не одного метода не вызывается. Може я где прогнал кто подскажет, что не так
HRESULT hr;
CComQIPtr<_DSPort> m_pSPort;
// Init the COM library if ( FAILED( CoInitialize(NULL) ))
{
printf("Fatal Error: OLE initialization failed");
return 1;
}
// Create a COM object comport coclas.
hr = CoCreateInstance (
CLSID_SPort,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDSPort,
(void**) &m_pSPort);
if ( SUCCEEDED(hr) )
{
printf("CoCreateInstance() succed\n");
m_pSPort->CreatePort("COM1");
}
else
{
printf("CoCreateInstance() failed.\n\n");
}
if ( FAILED(hr) )
return 0;
CoUninitialize();
return 0;
Re: Использование MFC ActiveX в консольном прилодении
Здравствуйте, rus blood, Вы писали:
RB>Здравствуйте, bearsnn, Вы писали:
B>>Hi all
RB>1. Это ActiveX-контрол, или это просто COM-объект?
ActiveX-контрол
RB>2. Как связаны _DSPort и IDSPort ?
_DSPort — генерится вытоматически дерективой #import
IDSPort — uuid интерфейс RB>3. Что принимает на вход метод CreatePort ?
Не имеет значение, даже если вызывать методы без параметров, все равно выдает exception
Re[3]: Использование MFC ActiveX в консольном прилодении
Если не сложно можешь привести пример с конкретным активыксом, а то что не то. IDSPortPtr не имеет метода CreateInstance. Може я где то гоню
RB>Здравствуйте, bearsnn, Вы писали:
B>>Здравствуйте, rus blood, Вы писали:
RB>Ок, а если так
RB>
B> а то что не то. IDSPortPtr не имеет метода CreateInstance.
Если сам раппер у тебя создался, то и метод должЁн быть.
Заметь, это метод раппера, а не объекта (грубо говоря, вызывается через "точку", а не через "стрелку").