объявление / определение и создание объектов COM с Visual C ++? - PullRequest
0 голосов
/ 31 января 2012

мне нужно создать экземпляр объекта com, который является .dll и на локальном компьютере в Visual C ++, я знаю, что это можно сделать с помощью CoCreateInstance ("clsid"), но я запутался в объявлении. Поэтому любой может объяснить все шагиучаствует?для позднего связывания, а также для раннего связывания

  1. требуется ли какой-либо импорт / включение
  2. как объявить объект com?
  3. любые другие шаги, необходимые перед созданием экземпляра (например, CoInitialize)?)

или предоставить какую-либо конкретную ссылку, включающую пошаговый код

Ответы [ 2 ]

0 голосов
/ 31 января 2012
  1. #import очень рекомендуется. если вы импортируете typelib с помощью #import, вы будете использовать платформу Native COM, которая изолирует некоторые мелкие детали и упрощает жизнь.

  2. В Native COM что-то вроде этого:

    LibName :: IMyInterfacePtr pInterface;

В сыром C ++:

IMyInterface *pInterface;

Но смотри выше.

  1. Вызвать CoInitialize () в начале программы, CoUninitialize () в конце. если работает внутри DLL, то это намного сложнее.
0 голосов
/ 31 января 2012

Сначала вы должны позвонить CoInitialize и не забудьте позвонить CoUnitialize, если инициализация прошла успешно.

Таким образом, ваш код будет иметь следующую структуру:

HRESULT hr = CoInitialize(NULL); 
if (SUCCEEDED(hr))
{
    try
    {
        CoCreateInstance(...)
        // ...
    }
    catch (_com_error &e)
    {
        //...
    }
    CoUninitialize();
}

Для получения дополнительной информации посетите MSDN .Я рекомендую вам начать с библиотеки COM , а затем вы должны прочитать кое-что о CoInitialize и CoCreateInstance функциях перед их использованием.

ЭтоУчебник также может помочь вам: Введение в COM - что это такое и как его использовать .

...