Форум программистов, компьютерный форум, киберфорум
Компас 3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
36 / 36 / 22
Регистрация: 18.01.2014
Сообщений: 149
1

Компас 3D и С++. Начало работы. Запуск Компас-3D используя функцию С++. Ошибка компиляции

16.10.2019, 00:32. Просмотров 1384. Ответов 6

Добрый день, уважаемые форумчане!

Осваиваю программирование С++ для Компас-3D. Раньше никогда не сталкивался с этой задачей.
Первые попытки - первые сложности.

Использую c++ builder 6. Версия компаса Компас-3D v17 Home.

Пробую сделать консольное приложение при запуске которого будет производиться запуск начальной страницы Компаса.


Код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//---------------------------------------------------------------------------
#include <Ks_TLB.h>
#include <ksConstants.h>
#include <ldefin2d.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
        KompasObjectPtr kompas;
 
        kompas.CreateInstance(L"KOMPAS.Application.5");
 
        kompas->Visible = true;
 
        kompas.Unbind();
 
        return 0;
}
//---------------------------------------------------------------------------
Появляется ошибка :

[Linker Error] Unresolved external 'Kompas6api5_tlb:IID_KompasObject' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\KOMPAS_START\UNIT1.OBJ

Из-за чего она возникает и как её можно устранить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2019, 00:32
Ответы с готовыми решениями:

Из Компас 3D v13 в Компас 3D v12
Не надеюсь на то, что кто-нибудь сможет выполнить мою просьбу, но попробовать стоит. Необходимо...

КОМПАС V15 в КОМПАС V13
Помогите, пожалуйста, пересохранить файл:( из V15 в V13 КОМПАС

Чертежи из Компас 16 открыть в Компас 15
Помогите мне пожалуйста, у меня модели сделаны в 16 компасе, можно пересохранить как то их что бы...

Чертежи из Компас 16 открыть в Компас 15
Помогите мне пожалуйста, у меня чертежи сделаны в 16 компасе, можно пересохранить как то их что бы...

6
36 / 36 / 22
Регистрация: 18.01.2014
Сообщений: 149
16.10.2019, 00:53  [ТС] 2
Добавил в проект файл компаса Ks_TLB.cpp

Появилась ошибка
0
Миниатюры
Компас 3D и С++. Начало работы. Запуск Компас-3D используя функцию С++. Ошибка компиляции  
36 / 36 / 22
Регистрация: 18.01.2014
Сообщений: 149
16.10.2019, 01:31  [ТС] 3
Ссылается на файл utilcls.h

на строку
C++
1
  throw msg;  // Hopefully we never get here: Need something much better to throw!!
фрагмент целиком
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Helper used to throw an exception
template <class T>
void DebugHlpr_THROW(T* msg, HRESULT hr, T* file, bool /*assertFailed*/)
{
#if defined(ComObjHPP)
  // NOTE: This does not retrieve rich error information, the way Delphi and VB environments
  //       do. Eventually this 'throw' will either throw a rich EOleException or some other
  //       OLE exception class (something equivalent to _com_error, maybe??)
  //
  //       For now, you can specialized [T = TCHAR] 'DebugHlpr_THROW' to retrieve rich error
  //       information and throw a VCL exception class, if you're using VCL classes already,
  //       or throw a custom exception class.
  //
  //       NOTE: Use the assertFailed parameter to distinguish between Assertion and
  //             OLECHECK failures. (Maybe throw something different??)
  throw EOleException(msg, hr, file, _T(""), 0);
#else
  throw msg;  // Hopefully we never get here: Need something much better to throw!!
#endif
}
0
1966 / 1489 / 165
Регистрация: 14.12.2014
Сообщений: 13,106
16.10.2019, 02:18 4
19dmitry, Вообще по штатным методам билдера компоненты COM импортируются в меню компонентов и для них автоматически генерируется компонент-обертка. Но для таких дел как САПР там такие жутики вылазят по 20-50+ сгенерированных килострок что ховайся. Пробовал как то подобное провернуть но не под компас а под солид. В результате плюнул и вот так же "на коленеке" через CoCreateInstance и т.д. в визуал студии все сделал. там все эти TLB через директиву import импортируются и никаких проблем с линковкой и т.д.
0
66 / 56 / 11
Регистрация: 27.11.2017
Сообщений: 393
16.10.2019, 21:28 5
прежде чем бежать впереди паровоза - нужно хотябы прочесть инструкцию к этому паровозу?

а если у него скорость выше чем у твоих ног ?

%ProgramFiles%\ASCON\KOMPAS-3D v18\SDK
%ProgramFiles%\ASCON\KOMPAS-3D v18\SDK\Samples\C++.zip\CBuilder
0
36 / 36 / 22
Регистрация: 18.01.2014
Сообщений: 149
18.10.2019, 00:28  [ТС] 6
Да, есть SDK, есть примеры, которые который год кочуют из версии в версию, разработчики их перекладывают из папки в папку. В чём решение?

Проблема на уровне настройки компилятора. Не получается подключить к библиотекам компаса ни CBuilder ни VS.

Не работают примеры, все заголовочные файлы подчеркнуты красным. Более того, при обращении к файлу <Ks_TLB.h> из Visual Studio, компилятор выдает ошибку, ссылающуюся на vcl.h, который вообще относится к билдеру.

Кроме примеров, нам разработчики даже предоставляют файл с описанием "Компиляция библиотек под К17 ", только вот какие версии там описаны интересно? Судя по всему меняется в нем лишь название файла с названием новой версии компаса, а содержимое остаётся прежним.

Господа, если был у кого-то недавний опыт подключения к API Компас последних версий, пожалуйста, опишите подробно сам процесс подключения библиотек и исполнительных файлов, манипуляции в настройках, которые Вы проводили, потому что вся информация которая встречается в сети направлена на описание возможностей языка при работе с Компасом. Проблема же заключена на самом начальном этапе - подключении!
0
1966 / 1489 / 165
Регистрация: 14.12.2014
Сообщений: 13,106
18.10.2019, 02:31 7
Цитата Сообщение от 19dmitry Посмотреть сообщение
Проблема на уровне настройки компилятора. Не получается подключить к библиотекам компаса ни CBuilder ни VS
Билдер 6-ой говорите? А формат библиотек из SDK ему точно знаком? А то с 2002-го и времени много утекло и версия компилятора у билдера кучу раз обновилась и фирма-производитель два раза поменялась, и разрядность у компутеров удвоилась и SSE/AVX куча версий сменилась и плюсов куча раз стандарт обновился.
Visual Studio то свежий хоть?
Цитата Сообщение от 19dmitry Посмотреть сообщение
Более того, при обращении к файлу <Ks_TLB.h> из Visual Studio, компилятор выдает ошибку, ссылающуюся на vcl.h,
там по всей видимости два комплекта хидеров. Один для билдера второй для всего остального. По всей видимости в настройках путей нужно указать нужную папку с хидерами.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2019, 02:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Запуск компас Электрик
Ребят подскажите по шагово как запустить компас электрик?Установил компас 3D Маниностроение.А...

Ошибка про создании приложения для компас-3д
учусь программировать для компас...в обозначенном месте вылетает ошибка 'Запуск Компас 3D ...

Компас, начало
Здравствуйте, дорогие жители форума. Прошу о помощи! Не запускается программа, которая должна...

Программа для работы с Компас 3D
Здравствуйте! (не уверен что в эту тему, однако по САПР только автокад) Не могли бы Вы помочь со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.