Я добавил ссылку на COM Type Libary в мой проект на C #.Я вижу интерфейс и класс объектов, созданный TlbImp.Сигнатура одного из методов интерфейса:
string GetResString(int hr);
, что соответствует его неуправляемому аналогу, определенному в заголовке C ++:
STDMETHOD(GetResString)(EMS_RESULT hr, /*[out,retval]*/ BSTR *pbszString);
Когда я вызываю вышеуказанный метод, используя:
ITranslationObject translator = new TranslationObjectClass();
var str = translator.GetResString(2);
Я получаю исключение с сообщением «Необработанное исключение в 0x00000000 в MfcVSApp1.exe: 0xC0000005: Место чтения нарушения доступа 0x00000000."
Я пытался вручную создать оболочку, используя P / Invoke и через DLLImportи получил то же самое.
Это моя первая попытка COM-взаимодействия из управляемого кода, поэтому я, вероятно, что-то упустил.Пожалуйста, напишите мне любые идеи, так как мне нужно, чтобы это работало.
TIA.