• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

CreateKompasObject() в С++ Builder 6.0 не работает?

Автор bmiho, 20.03.06, 08:46:45

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

bmiho

Возникла проблема при попытке использовать CreateKompasObject() в С++ Builder 6.0:
Подключаю следующие h-файлы:
#include <windows.h>
#include <Ks_TLB.h>
#include <utilcls.h>
Объявляю:
extern "C" IDispatch* far __export WINAPI CreateKompasObject();
В функции:
extern "C" void far __export __pascal  LibraryEntry( unsigned int  ){
  KompasObject* kompas = (KompasObject*)::CreateKompasObject();
...
Однако, вопреки ожиданиям, компилятор ругается на файл Ks_TLB.h и говорит, что:
1) Ks_TLB.h(1909): E2015 Ambiguity between '_fastcall System::Variant::operator =(const bool)' and '_fastcall System::Variant::operator =(const short)'
2) Ks_TLB.h(1918): E2034 Cannot convert 'Variant' to 'TOLEBOOL'
и еще куча таких же ошибок в разных строках Ks_TLB.h.
Что это такое и как с этим бороться?
Конфигурация: PIV, WinXp Sp2 Pro, Kompas 7+

IronMaxxx

Библиотеки КОМПАСа (*.tlb) были подключены через Import type library? Если нет, естественно, что ничего работать не будет.
А еще в Project - Options... - Directories/Conditionals проверьте, правильно ли указаны пути Include path и Library path.

bmiho

На вкладке Import Type Library присутствуют библиотеки Kompas6API5(Version 1.0) KompasAPI7(Version 1.0) из файлов соответственно kAPI5.tlb и KAPI7.tlb. Пути к папкам Компаса SDK\Include и SDK\Lib указаны корректро... А ошибки все равно есть  :(

bmiho

Ага, спасибо, IronMaxxx, заговорив про библиотеки .tlb вы помогли мне разобраться, просто вместо ks_TLB.h из стандартной поставки Компас нужно было подключить Kompas6API5_TLB.h, сгенерированный из Kompas6API5.tlb Вот и все... :beer:

IronMaxxx

Цитата: bmiho от 20.03.06, 11:26:00
Ага, спасибо, IronMaxxx, заговорив про библиотеки .tlb вы помогли мне разобраться, просто вместо ks_TLB.h из стандартной поставки Компас нужно было подключить Kompas6API5_TLB.h, сгенерированный из Kompas6API5.tlb Вот и все... :beer:

А можно было просто переименовать сгенерированный из Kompas6API5.tlb файл в ks_TLB - эффект был бы тот же.

333

Здесь проблемма с тем что в 6-том Buildere изменился синтаксис
Поэтому нужно ренерить файлы заново