Как использовать компонент ATL COM, разработанный с использованием C++ в WCF REST services на C#?
Я разработал ATL COM DLL в visual c++. Я зарегистрировал dll и добавил ссылку на dll в c++.Я пытаюсь использовать C++ COM dll в WCF REST services на c#,но получаю следующую ошибку:
Невозможно привести COM-объект типа ' System.__ComObject на интерфейс ProVisionCOMDemoLib тип '.ReadDATFile'. Эта операция не удалась, так как вызов QueryInterface на COM-компоненте для интерфейса с IID '{91820B46-B3FD-41FE-9A75-45A72424F480}' не удался из-за следующей ошибки: такой интерфейс не поддерживается (исключение из HRESULT: 0x80004002 (E_NOINTERFACE)).
Пожалуйста, помогите мне решить эту ошибку.Пожалуйста, предложите несколько способов вызова c++ com dll в WCF Rest services на c#.
Спасибо и с уважением
Вивек
Что я уже пробовал:
Следующий код используется для вызова com c++ dll в WCF rest web services на языке c#:
object sResult; ProVisionCOMDemoLib.ReadDATFile objTest = new ProVisionCOMDemoLib.ReadDATFile(); objTest.ReadDATFile(mFileName, out sResult);
David 'dex' Schwartz
У вас есть в C# с правильной ссылкой для входа библиотеки DLL?
Можете ли вы отладить вызов QueryInterface в вашем ReadDATFile
возражать?
Пожалуйста, разместите следующую информацию.
Холостой ход для ReadDATFile
объект.ReadDATFile
заголовочный файл с объявлением класса, всеми интерфейсами и связанными с COM объявлениями макросов.
Если у вас есть клиент QueryInterface
реализация вы должны опубликовать и это тоже.