Ошибка при экспорте C # dll в TLB

#c# #c #com #typelib

#c# #c #com #typelib

Вопрос:

У меня есть .NET DLL, которую я экспортирую в TLB. Моя библиотека dll зависит от системы.Чертеж, ввод-вывод и некоторые другие сборки.

TlbExp, похоже, работает нормально, но он не экспортирует один из типов из чертежной сборки — Прямоугольник. Подробный режим показывает, что утилита ссылается на сборку, и она ссылается на все типы, кроме Rectangle . Типы из других сборок в порядке. Итак, когда я делаю это в своем примере приложения на C :

 #import "graph.tlb"
  

и построив его, я получаю сообщение, что тип «Прямоугольник» не упоминается. При сборке создается файл tlh, но прямоугольника нет, несмотря на то, что у прямоугольника есть атрибут ComVisible(true). Не знаю, что там делать.

Комментарии:

1. Вы имели в виду добавить typelib тег вместо tlb ?

2. Это не может быть graph.dll , это должен быть graph.tlb. Опечатка или реальная проблема? «тип «Прямоугольник» не указан» — это не то сообщение об ошибке, которое когда-либо генерирует компилятор C . Еще одна опечатка? В системе отображается прямоугольник. Рисование. tlb в . Каталог NET framework. Ваш graph.tlb должен автоматически включить его. Используйте OleView.exe утилита, файл Вид Typelib, чтобы посмотреть-посмотреть.

3. Да, произошла опечатка.