Как получить доступ к члену класса (создан в C #) в Dephi

2

Я создал lib, который содержит класс DateRange в С#. Я создал .dll и .tlb для этой библиотеки и зарегистрировал файл .tlb. Все необходимые шаги были выполнены.

В Delphi я использовал опцию библиотеки типов импорта для создания единицы, которая содержит информацию обо всех классах, которые я создал в С#.

Проблема: я не знаю, как использовать член класса DateRange. Пожалуйста, помогите мне.

Код, который я использовал в Delphi,...

program COMTesting;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ComObj,
  MCenterComService_TLB in 'MCenterComService_TLB.pas';

var dr:DateRange;

begin
  dr:= createComObject(CLASS_DateRange) as DateRange;
  dr.fromdate:= date('4/16/2009');
  dr.todate:= date('4/16/2009');
end.

Система говорит: [Ошибка DCC] COMTesting.dpr(18): E2003 Необъявленный идентификатор: 'fromdate'

Теги:

1 ответ

3

Необъявленный идентификатор означает, что интерфейс DateRange не имеет свойства, называемого fromdate. Взгляните на объявление DateRange в сгенерированном модуле MCenterComService_TLB.pas. Там вы, вероятно, найдете методы Get_fromdate, Set_fromdate или аналогичные. Возможно, импортер библиотеки типов не генерирует объявления свойств на интерфейсах. Тем не менее, вы все равно можете использовать методы getter/setter.

Вы также можете вручную добавить объявления свойств.

  • 0
    я уверен, что fromdate, свойство todate было объявлено классом datarange в c #
  • 0
    Как я уже сказал, объявления свойств могут быть потеряны при импорте библиотеки типов. Посмотрите на сгенерированный блок.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню