2017-02-07 22 views
1

Попытки создать COM-объект в исполняемом файле и использовать его в проекте C#:Создание исполняемых COM как ATL проект и использовать его в C#

Создание COM в исполняемом файле.

Создание с помощью проект ATL enter image description here

enter image description here

Добавление класса:

enter image description here

enter image description here

компилируется и работает без проблем.

Пытается использовать в проекте C# и получил отказ. Саморегистрация для проекта ... не удалось. Что может быть неправильным? VS начался как администратор.

enter image description here

+0

Набор инструментов требуется элемент управления ActiveX, нет никаких признаков того, что бы то ни было на самом деле вы создали один. Ну, вы этого не сделали, это не может быть проект EXE, а «Мастер простых объектов ATL» его не создает. Это не просто. Вместо этого используйте Project> Add Reference, оператор 'new' в вашем коде. Я также очень * очень * настоятельно рекомендую вам не создавать EXE-сервер, у них много очень острых краев, когда вы используете их из управляемого кода, который всегда будет вызывать обильное кровотечение, когда COM не будет хорошо понят. –

ответ

0

Вы должны добавить ссылку на библиотеку типов сервера в проекте C#, чтобы иметь возможность использовать его:

  1. Щелкните правой кнопкой мыши References в обозревателе решений и нажмите Add a reference
  2. В менеджере ссылок выберите COM.
  3. Выберите тип библиотеку типов (ComTstLib в вашем примере)
  4. В обозревателе решений откройте контекстное меню для справки вы только что добавили, а затем выбрать Properties.In окно Properties, убедитесь, что типы недвижимости Код Interop установлено значение True. Это заставляет Visual Studio вставлять информацию о типе для типов COM в ваши исполняемые файлы, исключая необходимость развертывания первичных сборок с вашим приложением.

Во время развертывания вам просто нужно убедиться, что ваш com-сервер уже установлен на клиентской машине.

Смотрите также msdn