none
Импорт и вызов ATL COM DLL метода RRS feed

  • Вопрос

  • Привет!
    Помогите пожалуйста связать ATL COM DLL к C# приложению.

    в ATLLib.idl

    ...
    interface IATLLibMain : IUnknown{
        [helpstring("method hello")] HRESULT hello([out,retval] BSTR* res);
    };
    ...

    в ATLLibMain.cpp (ATL SimpleObject Class)

    STDMETHODIMP CATLLibMain::hello(BSTR* res)
    {
        *res = SysAllocString(L"Hello world!!!");
        return S_OK;
    }

    компилирую и регистрирую COM.

    В С# проекте делаю Add Reference... добавляю СOM. Вызываю COM method таким образом

        IATLLibMain atllib = new ATLLibMainClass(); //ошибка в этой строке
        Console.WriteLine(atllib.hello());

    выдает ошибку

    An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in ATLLibTest.exe

    Additional information: Сбой при получении производства объектов класса COM для компонента с CLSID {5989CFE5-ACFC-4FA7-ABC7-07B81E167419} в результате следующей ошибки: 80040154.

    3 марта 2013 г. 15:32

Ответы

Все ответы