(изменено: Дмитрий Гамий, 28 января 2010 11:43:41)

Тема: Проблемы с импортом библиотеки типов TCS API в Delphi

Возникли некоторые проблемы при импорте библиотеки типов TcsApi.tlb (TechnologiCS 5.7.0(10953)) в Delphi 7.

  1. При импорте из  Delphi (Project -> Import Type Library -> Add -> Create Unit)  сама Delphi "вылетает" и создается только файл CSDN_TLB.dcr

  2. При импорте с помощью утилиты tlibimp.exe создается и CSDN_TLB.dcr, и CSDN_TLB.pas, но в CSDN_TLB.pas отсутствуют интерфейсы IUserRecordSet и IOCS_Application7, а компилятор выдаёт ряд ошибок и предупреждений вида

[Warning] CSDN_TLB.pas(19685): Redeclaration of 'ClassType' hides a member in the base class
[Error] CSDN_TLB.pas(51269): Incompatible types: 'HRESULT' and 'procedure, untyped pointer or untyped parameter'

Подскажите, пожалуйста, что нужно сделать для правильного импорта.

И ещё.
Интерфейсы IUserRecordSet и IOCS_Application7 не удалось найти с помощью Object Browser'е  в MS Visual Basic.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Интерфейсы IUserRecordSet и IOCS_Application7 не удалось найти с по

В дистрибутиве похоже старая tlb :(.  Можно взять   библиотеку непосредственно их TCSApi.ocx, либо из приложенного здесь файла.

Поправим в ближайшем сервис паке

Спасибо сказали: Дмитрий Гамий1
Post's attachments

TcsApi.tlb 200.64 Кб, 7 скачиваний с 2010-01-28 

You don't have the permssions to download the attachments of this post.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Спасибо.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Интерфейсы IUserRecordSet и IOCS_Application7 появились, но проблемы с ошибками и предупреждениями компилятора остались.
Ошибка Incompatible types: 'HRESULT' and 'procedure, untyped pointer or untyped parameter' возникает в следующих процедурах:

function TDEvents.AfterScroll(const Sender: IDModule): HResult;
function TDEvents.BeforeScroll(const Sender: IDModule): HResult;
function TDEvents.AfterOpen(const Sender: IDModule): HResult;
function TDEvents.AfterClose(const Sender: IDModule): HResult;
function TDEvents.AfterApply(const Sender: IDModule): HResult;
function TDEvents.AfterDelete(const Sender: IDModule): HResult;
function TAppEvents.OnHandleException(const Sender: IOcs_Application; const Value: IExceptionInfo): HResult;

Предупреждение Redeclaration of 'ClassType' hides a member in the base class относится к свойству ClassType  классов TNmkClasses и TNmkTechnology.
Что с этим посоветуете сделать?

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Да ничего,  это еж просто warning.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

А с ошибкой Incompatible types: 'HRESULT' and 'procedure, untyped pointer or untyped parameter' что делать?
В итоге Delphi выдаёт фатальную ошибку:

[Fatal Error] PriceCalculation.dpr(10): Could not compile used unit 'CSDN_TLB.pas'

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

ну я сделал импорт, дельфа завалилась правда, но файл успешно создала и проект  с этим файлом успешно собирается.

Попробуйте сгенерить еще раз.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Пробовал несколько раз - результат тот же. Видно необходимо как-то настраивать Delphi, так как на домашнем компьютере всё получилось. Если кто знает, как нужно настроить Delphi, поделитесь, пожалуйста опытом.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Тогда уж просто возьмите файл CSDN_TLB.pas с домашнего и с рабочего и сравните их между собой.
Рекомендую еще поискать на компьютере все файлы  CSDN_TLB.*, удалить их, после чего импортировать библиотеку снова.

(изменено: kaff, 12 мая 2010 05:08:20)

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Также возникли проблемы при подключении библиотеки TcsApi.tlb в Delphi 7.

Требуется написать отдельную программу на в Delphi 7, которая подключается к ТКС, и читает БД на SQL сервере и вносит номенклатуры в Номенклатурный справочник.

Версия TechnologiCS 5.7.0(10960) в Delphi 7.

При подключении Delphi падает.

Как в итоге КОРРЕКТНО подключить библиотеку в Delphi 7 (раньше также хоть и спроблемами но подключалась библиотека, сейчас никак не хочет),
дайте небольшую пошаговую инструкцию.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Я  обычно делаю так
1. Запускаю Delphi
2. Выбираю Component->Import ActiveX Control
3. Выбираю в списке CSDN LIbrary (задаю или запоминаю Unit Dir Name)
4. Нажимаю Create Unit

Delphi падает с ошибкой, в папке Unit Dir Name находится успешно созданный файл  CSDN_TLB.pas его и использую в дальнейшей работе.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Поскольку использование ActiveX TCS в VS пока повисло в воздухе, и не ясно, почему не рисуются кнопки,
попробовал подключить ActiveX TCS к Delphi 7, чтобы проверить, будет ли работать из дельфийских приложений.
История таже, что и у Дмитрия Гамия, с тем отличием, что у него на домашнем компьютере был CSDN_TLB.pas, а у меня такого файла нет нигде.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Поскольку использование ActiveX TCS в VS пока повисло в воздухе, и не ясно, почему не рисуются кнопки

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

а у меня такого файла нет нигде.

Выбираю в списке CSDN LIbrary (задаю или запоминаю Unit Dir Name) Он должен лежать по данному пути.

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Выбираю в списке CSDN LIbrary (задаю или запоминаю Unit Dir Name) Он должен лежать по данному пути.

TcsApi.ocx - да, есть, но как я говорил выше, Дельфи при выполнении

4. Нажимаю Create Unit

падает и НЕ СОЗДАЁТ  файл CSND_TLB.pas

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Еще некоторые замечания в данный топик (как раз недавно столкнулся с той же проблемой).

Как создать CSDN_TLB.pas

  • 1. Обязательно раз-регистрируем  TCSAPI ( UnRegTCS_API.bat  )

  • 2. Запускаем Delphi. Вызываем команду из меню Project -> Import Type Library

  • 3. В появившемся окне нажимаем кнопку Add и выбираем нужный TCSApi.tlb

  • 5. Лучше снять галочку Generate component Wrapper.

  • 6. Выбираем команду Create Unit (не забываем указать путь где сохранить).

  • 7. Файл успешно создается.

  • 8. Закрываем Delphi.

  • 9. Регистрируем TCSAPI (RegTCS_API.bat).

Все. В данном случае все должно пройти успешно и без проблем.

Спасибо сказали: Дмитрий Гамий1

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Не желает импортироваться библиотека в Delphi XE
версия TechnologiCS 4.6.3
В чем может быть причина? Это вообще возможно?

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

а в чем выражается нежелание?

(изменено: tvex, 8 декабря 2011 10:40:44)

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Файл CSDN_TLB.pas создается с ошибками,
в Delphi 7 все проходит прекрасно

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

что за ошибки то?

(изменено: tvex, 8 декабря 2011 10:51:58)

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Порядок действий

разрегистрирую  TCSAPI
в Delphi XE - Component -> Import Component -> Import a Type Library->
добавляю TCSApi.tlb ->Next
вылетает ошибка "Ошибка при загрузке библиотеки"

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

А если вообще грохнуть файл tcsapi.ocx - поможет?

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

То же самое

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

у меня один раз ругнулась так,  второй раз уже завелась без проблем (Delpi XE 2 ).

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Несмотря на ошибку библиотека добавляется и в при следующем проходе создает .pas,
но он с ошибками и не работает,
пробовал раз десять

Re: Проблемы с импортом библиотеки типов TCS API в Delphi

Ну я дальше не проходил, хотя выглядит он корретно. Что за ошибки возникают далее?