Перейти к публикации

Pro\Toolkit, Java, VBA


VitAl2013

Рекомендованные сообщения

Задался я тут на медни вопросом об создании своего приложения к Прошке. Сделал его на AutoIT, завёл запуск через мапкей, но во-первых работает зараза через раз, то что-то не прогрузилось, то несоздалось... во-втотрых полного функционала нет... программа по сути формирует макросы подгружает и запускает их, то есть сама на прямую ничего не делает кроме передачи макросов запуска... Ладно, это детали, если понадобиться потом подробнее напишу. Вспомнил я про pro/toolkit, но как выяснилось это развод на MS Visual Studio :thumbdown: Попытался найти бесплатную (а желательно открытую) альтернативу, нашёл только описание <noindex>pro/Rtoolkit </noindex> - как я понял, реализация тулкита на Питоне (что свободно и денег не берёт), но где его взять я так и не понял. Вообще есть может ещё какие-то варианты? Сейчас бесплатная Студио Эксперсс вышла, на ней никто не пробовал тулкитить?

Соседние ссылки:

<noindex>Protoolkit (азы)</noindex>

<noindex>Помогите разобраться с Pro/toolkit</noindex>

<noindex>Pro/develop Pro/toolkit, использовать вместе или раздельно?</noindex>

<noindex>Pro/Engineer в Delphi</noindex>

По Pro/Toolkit на английском:

<noindex>Лицензия</noindex>

<noindex>Ещё одна разновидность программирования от сторонней фирмы</noindex>

Добавка от 28-11-2010:

Волею судеб так случилось, что теперь мы коллеги с Vin Yovanovich - это тот умный дядька который Pro/Rtoolkit сделал в 2003 году. Не смотря на то что мы коллеги, мы находимя в деометрально противоположных местах планеты. Он пошёл по пути науки. Его помесь Питона и Тулкита для него инструмент. Разрабатывал он её в надежде получить спонсоров для развития идеи, но не срослось... Дать он мне её не может, так как в чистом виде её нет, она часть внутренего продукта фирмы. Тем более нельзя её расшарить. Сам этот дядька, как ясно из фамлии Серб. Вуковицу (их вариант алфавита на кирилице) знает. "Привет" и сказать и написать может. В общем он натолкнул меня на мысль... точнее это то что он реализовал и то что я у него выспрашивать буду.

Он взял jython - это реализация Питона на Java подключил его к J-Link (а я ещё спросил: "...чтоб можно это всё дело подключить и к Qt") и стал прогать. Особенность этой реализации Питона в том что она может юзать классы Java, то есть в нашем варианте J-Link.

add to PATH -> C:\ptc\proeWildfire4\i486_nt\lib

in dos shell do.....

set CLASSPATH=.;C:\ptc\proeWildfire4\text\java\pfcasync.jar;C:\Program Files\Java\jre6\lib\ext\QTJava.zip

set PRO_COMM_MSG_EXE=C:\ptc\proeWildfire4\i486_nt\obj\pro_comm_msg.exe

Now you can do something like this….. (ad a part into Pro/E and you’ll get the handle for that part for example) …..

C:\vjfolder\RTOOLKIT\pdc>jython

Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)

[Java HotSpot Client VM (Sun Microsystems Inc.)] on java1.6.0_20

from java.lang import System

System.loadLibrary ("pfcasyncmt")

from com.ptc.pfc.pfcAsyncConnection import *

ac = pfcAsyncConnection.AsyncConnection_Connect (None,None,None,20)

cs = ac.GetSession ()

cs.GetCurrentDirectory()

m=cs.GetCurrentModel()

вот такие вот пироги покамест.

Ссылка на сообщение
Поделиться на других сайтах


Сейчас бесплатная Студио Эксперсс вышла, на ней никто не пробовал тулкитить?

Я предполагаю Студио Эксперсс Тебе должно хватить

Тебе ведь от Microsoft кроме C/C++ ничего не нужно

а библиотеки у Тебя свои от ProE

Ссылка на сообщение
Поделиться на других сайтах

Скачал Microsoft Visual C++ 2008 Express Edition (+SP1) При установке спросил "устанавливать Silverlight и SQL Server?". Они нужны в дальнейшем или нет? 2008 как с 4кой работает (вроде 2005 была нормальна для неё)? Имеет ли значение на каком языке этот экспресс?

Ссылка на сообщение
Поделиться на других сайтах

Язык не имеет значения (с английским удобнее из-за большого количества документации расчитанного на аглицкий язык)

2008 с WF4 пока нормально работает - но официально 2005

но сколько пробовал нареканий нет

разве что немного настройки компилятора могут отличаться и линковщика.

Официально 2008 будет работать с WF5.

Достаточно будет и Expres

Silverlight и SQL Server не нужны.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Ну чтож, дошли у меня руки до pro/toolkit, тестовая программа запустилась... Что делал, степ-бай-степ (думаю будет полезно для тех кто не знает с какого боку начать):

1. Раздобыл Microsoft Express Visual C++

2. Установил её без SQL сервера.

3. Проверил, что сам Pro\toolkit установлен, через bin\ptcsetup.bat

4. Проверил наличие самой лицензии на тулы через ptsstatus.bat. Она там идёт со звездой (*) и надписью (Available only on startup), что означает что проверяется только при старте Прошки.

5. Запустил Microsoft Express Visual C++

5.1 Выбрал File->New->Project, там General и Makefile Project, вписал ProTOOLKITInstall в поле Name, запомнил путь до папки с проектом в поле Location и поОКеям.

5.2 Next кнопка. Затем поля вот так:

Build command line: nmake /f make_install dll

Clean commands: nmake /f make_install dll_clean

Rebuild comand line: nmake /f make_install dll_clean

Output (for debugging): pt_inst_test.dll

Include search path: [путь до папки Прошки]\protoolkit\includes - замечание такое, я сразу ложил прошку так, чтобы не было в названиях папки ни пробелов (это важно, лучше вообще скопировать папку protoolkit в такое место) ни всяких значков, плюс длины названий папок не более 9 знаков.

5.3 Next кнопка. Проверил чтоб была галка - Same as debug configuration. Finish кнопка.

6. Выбрал View->Solution Explorer (это окно у меня было закрыто, может у когото тоже так будет)

7. Скопировал файл make_install из папки [Путь до папки Прошки]\protoolkit\i486_nt\obj в папки с проектом и во вложенную в папку с проектом папку (то есть в 2 папки, вообще надо только во ложенную папку). i486_nt может быть другой (например x86e_win64)если у вас не 32битный процессор, тут уж надо быть первопроходцем

8. Перешёл обратно в студию. Выбрал Project->Add Existing Item, выбрал make_install (из вложенной папки проекта)

9. Двойной клик на добавленом файле в дереве и под надписью # Pro/Toolkit Source & Machine Loadpoint (EXTERNAL USE - DEFAULT) поменял значение "../.." на [путь до папки Прошки]\protoolkit (без всякого слэша на конце) Сохранился.

10. Выбрал Build->Build sulution

11. Нашёл внутри папки проекта файл pt_inst_test.dll. Сделал рядом файл protk.dat и раскрыл его в блокноте. (именно protk, никакие install не покатят)

11.1 Вписал туда:

name pt_inst_test

startup dll

exec_file pt_inst_test.dll

text_dir [Путь до папки Прошки]\protoolkit\protk_appls\pt_install_test

end

Сохранил.

12. Затем Пуск->run вписал cmd - Enter

12.1 Там [Путь до папки Прошки]\bin\protk_unlock [Путь до папки с pt_inst_test.dll]\pt_inst_test.dll (именно до dll, а не до папки с проектом)

Подтверждеием что всё ОК будет надпись типа: Successfully unlocked application... блаблабла

13. Залезаем в ярлык Прошки и смотрим какой путь к рабочей дирректориию Скидываем туда protk.dat и pt_inst_test.dll

14. Запускаем Прошку. Если всё нормально то появиться пункт в меню File->Install Test. Если вылезло какое-нибудь окошко при загрузке, что чего-то там не запустилось, то следует повторить пункты 4 и 12(.1 тоже).

Остались/появились вопросы: Получается, что можно писать и компилировать dll где угодно? А потом присобачивать его к прошке через protk.dat? А можно ли как-то прикрепить программку-библиотеку как-нибудь более подобающим образом(сменит потом юзер рабочую папку или другой дополнительный аддишн захочет использовать, то всё пропало)? Можно ли делать exe программку монтируя её в меню Прошки, так скажем отдельно?

Ссылка на сообщение
Поделиться на других сайтах

Остались/появились вопросы: Получается, что можно писать и компилировать dll где угодно? А потом присобачивать его к прошке через protk.dat? А можно ли както прикрепить программку-библиотеку как-нибудь более подобающим образом(сменит потом юзер рабочую папку или другой дополнительный аддишн захочет использовать, то всё пропало)? Можно ли делать exe программку монтируя её в меню Прошки, так скажем отдельно?

Это основной метод загрузки сторонних приложений. Так работают и EFX c EMX, и связка Ansys с Pro/E и т.п.

Универсальную загрузку protk.dat можно сделать 2 способами: положить protk.dat в папку proe..\text или указать ссылку на protk.dat в config.pro. Правильные приложения для Pro/E при установке обычно дописывают в protk.dat свой блок.

Ссылка на сообщение
Поделиться на других сайтах

А случайно Pro/TOOLKIT User's Guide на русском нету, хотя бы частично?

Решил пока сам попереводить, но от не знания как оно должно работать встретил непонятки. Например: страница 1-22. Get, Eval и Compute функциональные глагольные приставки.

Перевёл так:

Get - считывает информацию непосредственно из базы Pro/Engineer

Eval - Даёт результаты простого вычисления

Compute - Даёт результаты вычислений которые обычно содержат числовой анализ геометрии модели

Что-то мне кажется не так... Далее идёт:

Для большей иллюстрации, функция ProSolidOutlineGet() считет из ПРОШКИ информацию о контуре, но ProSolidOutlineCompute() запустит для начала пересчёт (регенерацию) информации. Используйте ProSolidOutlineCompute() для аккуратного подсчёта контура твёрдого тела. Не используйте ProSolidOutlineGet() для пересчёта контура тела. Это не вернёт правильно подсчитанного контура.

То есть все 3 приставки только считывают, но не вписывают (выдают в память Прошки) значений? Ещё хотелось бы подробнее о том что и когда использовать? Когда Eval?

Ещё вот страница 1-23 там так:

Другие договорённости по функциям ПроТулов такие: первым аргументом идентифицируют объект и аргумент ввода идёт до аргумента вывода.

Я так понял это какая-то часть программирования... какие аргументы ввода и вывода? Про объект я вроде понял.
Ссылка на сообщение
Поделиться на других сайтах

Интересовал меня вопрос как же сделать exe файл а не длл, так как внутри файла make_install было всё описание. Читая большой мануал дошёл до страницы 1-28, там оказалось они сначала компилят ехе файл а уже потом dll. Ну и пару реверансов на счёт лучшей работы всё же dll дают. Ну так вот тем кому интересно, какже поменять ход действий и получить ехе.

5.2 Build command line: nmake /f make_install (без dll)

11.1 protk.dat выглядит так:

name install_test

exec_file pt_inst_test.exe

text_dir [Путь до папки Прошки]\protoolkit\protk_appls\pt_install_test

end

12 и 12.1 всё равно делать, только буквы dll заменить на ехе (к стати об этом в мануале ничего не говориться, по крайней мере когда разбирается запуск тестовых приложений)

О том что пошёл именно exe файл можно по списку процессов (советую Process Explorer, чтоб было видно какой родительский процесс) и по всплывшему досовскому окну, и у меня он стал ломиться в сеть (фаервол сработал) - пустил.

:rolleyes:

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

И ещё такой нюанс - Прошка виснет (в нот респонд уходит) если это досовское окно грохаешь, а так работает вместе с меню в File. WF4-M070. Это нормально?

Ссылка на сообщение
Поделиться на других сайтах

Продолжаем перевод, страница 1-33:

Для использования этого (файла конфигурации - make_install) как модели (базы) для ваших собсвенных проектов, скопируйте его в директорию с вашими файлами сырцов (исходниками, исходным кодом), затем сделайте следующие изменения:

- поменяйте значение переменной препроцессора (переменной которую использует компилятор в дальнейшем для компилирования программы) MAKEFILENAME на новую (задайте имя приложению)

- поменяйте значение переменных препроцессора EXE и EXE_DLL которые вам потом будет удобно использовать (задайте имя файлам после компиляции)

- поменяйте значение переменной препроцессора PROTOOL_SRC на точку загрузки Тулов (если тестовый пример был сделан, то конфигурационный файл make_install тестового приложения её уже содержит)

- поменяйте значение переменной препроцессора OBJS на те файлы-объекты которые которые будите использовать (для тех кто только учится (я тоже) - файлы типа *.obj это скомпилированные файлы *.c, некие промежуточные наборы, применяются во время компилирования)

- Добавьте выходные файл для файлов объектов. Они содержат инструкции для компилирования ваших файлов с исходными кодами С. Форма этих выходных файлов может быть скопирована с одного из оригинальных (данных в примере) конфигурационных файлов. В общем виде это имеет следующий синтаксис:

Страница 1-34:

myfile.o: myfile.c

<TAB> (я не знаю как тут ещё табуляцию поставить) $(CC) $(CFLAGS) myfile.c

P.S. Вторая срочка должна начинаться со значка табулятора (без никто)

P.P.S Такое выражение значит: "Создать файл *.obj если поменялся файл *.с. Создавать *.obj по правилам из второй строки"

Если вы хотите использовать дебаггер с вашим приложением, вы также можите добавить соответствующий ключ (флаг - в С так правильнее вроде говорить) (обычно "-g") к переменной препроцессора CCFLAFS

Примечание: флаг "-g" специфичен для языка С, а не для Тулов. ИМХО - включает процесс самого дебагапри компилировании

Если вам требуется более широкая справка об использовании файла конфигурации, документация к вашей компьютерной системе (ОС?) или текстовая книга UNIX системы вам в помощь.

Если вы перестраиваете ваше приложение подновую версию Тулов, запомните эти шаги по настройке нового конфигурационного файла (делайте заново короче) - не продолжайте использовать файл настроек от бывшей версии. Вам понадобиться данная процедура если поменяется копилятр или системные библиотеки (ОСки чтоли?)

Ссылка на сообщение
Поделиться на других сайтах

На странице 1-36 есть такое примечании:

Для более подробной информации по файлу регистрации приложений обратитесь к Дополнению файла регистрации PRO/TOOLKIT

А где это дополнение? Просмотрел от A до L - не нашёл.

Нашёл - это D

Ссылка на сообщение
Поделиться на других сайтах

Ещё одно дополнение, для тех кому надо иметь возможность врубать и вырубать приложение во время разработки. То есть: выключил приложение, изменил коды в VSE, скомпилировал dll или exe, зашёл в Прошку и включил приложение. 11.1 должно выглядеть так:

name pt_inst_test

startup spawn

allow_stop TRUE

delay_start TRUE

exec_file pt_inst_test.exe

text_dir [Путь до папки Прошки]\protoolkit\protk_appls\pt_install_test

end

startup_spawn - включает мультипроцесс, когда у вас приложение exe'шником. Вместо этой строчки может стоять startup DLL если у вас приложение в виде dll (соответсвено мультипроцесса не происходит, вы не видите своё приложение отдельно и если оно начинает грузить процессор вы тоже этого не увидите)

allow_stop TRUE - включает возможность вырубить выше приложение из Tools->Auxiliary Applications

delay_start TRUE - это позволяет не включать ваше приложение при старте Прошки, вдруг оно глючное и подвесит систему... а так загрузились аккуратно, посмотрели что все ок, потом зашли по вышеуказанному меню и включили его

Ссылка на сообщение
Поделиться на других сайтах

Дошёл я до того чтобы создать окошко приложения, а оказалось в Express версии окна редактировать нельзя... Пробую перейти на Qt.

P.S. проект (*.pro) в Qt это и есть файл make_install. То есть его туда надо просто с копировать для начала.

Ссылка на сообщение
Поделиться на других сайтах

RES файлы толкита отличаются от виндовских

и их нельзя редактировать в студии

только ручками и через блокнотик.

Ссылка на сообщение
Поделиться на других сайтах

Хорошо... тогда возвращаюсь в Студию... хотя для создания форм я нашёл ResEdit и Visg оба имеют русский интерфейс... но знаний в программировании на С не хватает - не получается увидеть форму в Студии созданную в одной из этих программ и сохранённую либо в *.cpp либо в *.rc.

Ссылка на сообщение
Поделиться на других сайтах

Для просмотра диалогов ProE используй prodialog_view.exe

(X:\ptc\proeWildfire5\protoolkit\x86e_win64\obj\)

Я делаю такой батник

SET LANG=russian

E:\programming\PRO_TPUTILS\prodialog_view.exe E:\programming\PRO_TPUTILS\text\russian\resource\tp_dial_analysis_chain.res

Ссылка на сообщение
Поделиться на других сайтах

pt_inst_cxx

Что должно выполнять, так скажем, визуально приложение pt_inst_cxx? Я его скомпилировал, разлочил, запустил, но ничего не произошло - ни меню, ни поп-ап окна... только досовское которое показывает что xtop.exe запустил ещё одно приложение. Как к стати от него избавиться (но не выключать приложение), если закрыть то Прошка уходит в нот респондинг?

Примечание к примеру такое: надо переименовывать make_install_cxx в make_install (только так Студия понимает что это файл с описанием проекта) и менять оба пути "../.." и "../../../prodevelop"

pt_inst_test_md

Приложение должно проверять установленные библиотеки для многопоточных приложений. Для тех кто не в лодке что такое многопоточность - представьте видеоплеер, если бы он был однопоточным, то после включения переставали работать бы кнопки, так как поток обрабатывал бы видео, а так существует несколько потоков, один на видео, один на кнопки...

У меня с этим приложением получилось что он не запустился и сказал что не может найти библиотеку MSVCR90.DLL Грешу на Экспресс Студию, пошлёпал дальше.

Ссылка на сообщение
Поделиться на других сайтах

pt_autoaxis

По задумке должен восстанавливать оси отверстий которые были сделаны неверно (если отключить один параметр в настройках, то осей не будет, когда создаётся круглое выдавливание). У меня как-то не заработал, точнее процесс налицо - всё виснет (или начинает тормозить), но у меня нет подходящей детали чтобы проверить.

pt_userguide

Создаёт меню со всеми рассматриваемыми функциями относящимися к Юзер Интерфейс в пособии. У меня прошло нормально

pt_examples

Создаёт своё меню с функциями относящимися к работе с Прошкой как с системой. Прошло нормально.

Ссылка на сообщение
Поделиться на других сайтах

pt_geardesign

Делает приложение которе создаёт зубчатые колёса, но делает это каким-то кастомным ("своим") способом, у меня в один прекрасный момент завис, видать геометрия не сошлась... а так работает

pt_async

С этим я не совсем понял... Что есть асинхронный метод работы? Если переводить то получиться что создаётся полностью асинхронное приложение. А вот при запуске винда пишет что такое приложние обратилось к участку памяти куда-то не туда и я его привинтивно хлопаю. Чтооно реально делает и как работает посмотреть не удалось.

Ссылка на сообщение
Поделиться на других сайтах

Понял что просто запускать примеры толку мало... решил вникать лоу левелом.

Итак разберём по косточкам файл make_install. Для начала немного истории и теории.

Что такое exe файл? Вернее так, после каких действий получается exe или dll, и что они в себе содержат?

Чтобы получить exe файл (будем как можно теснее к нашим баранам и не брать весь мир во внимание) надо взять файлы *.obj, файлы *.lib от Прошки и файлы *.lib от Системы для которой мы этот exe или dll (да, c dll проще он на сколько мне известно только в Windows) делаем. Надо их взять и слинковать запихнув одновременно в коробки *.exe или *.dll Либы от Прошки и либы от системы мы имеем; откуда взять *.obj? *.obj (к стати *.obj, они только в Винде; в Юне и Лине они *.o)- это скомпилированные *.с файлы (у других языков программирования другое расширение, но у нас Си), скомпилированы они по определённым правилам. Правила определяются операционными системами и архитектурой компа (x86, i386, i64 и т.д. - в основном это центральный процессор). Переход от сырцов (*.с) к скомпилированным *.obj есть процесс компиляции. Тобишь, компилиться не *.exe - он линкуется; компилятся *.obj.

c -- компилирование --> obj

obj + proe libs + system libs -- линкование --> exe

Что такое nmake? Утилита чтения и выполнения файла make_install.

Что такое make_install? Это так называемый билд-скрипт. Не путать с сырцами - это не Си, тут много по другому, синтаксис другой. Этот скрипт содержит правила по которым надо составить команды для компилирования и линковки и запустить их.

Так вот строка nmake /f make_install dll говорит линковать по билд скрипту make_install через "не хочу" выполняя метку dll ("dll:" - это метка, позже подробнее). Если dll нет, то компилится умолчание, то бишь *.exe.

Ещё перед следует отметить механизм работы линковки и компилирования. То над чем совершается действие - это source (сорс); то что получается после действия - это target (цель). Перед компиляцией/линковкой идёт процесс проверки дат сорса и цели. Если дата (понимать буквально - год, месяц, день, час, минута, секунда) у цели позже чем у сорса процесс компиляции не происходит и запускается проверка сорс-цель для линковки.

Теперь make_install файл:

MAKEFILENAME = [имя файла] - в Винде особого значения не имеет, если назвать Тимбухту, всё равно получите нормальное название; как так - будет ниже.

PRO_MASHINE_TYPE = [тип машины (32бита имеют обычно i486_nt)] - это создание переменной со значением. Зачем? За тем чтобы в случии необходимости сварганить ваш проект для другой архитектуры вы просто поменяли значение тут, - в одном месте. Более грамотно использовать именно такой путь, просто надо знать ипонимать, что использовать, как переменную, а что нет.

EXE = [имяфайла].exe

EXE_DLL = [имяфайла].dll - тоже переменные созданные с подобными же потому. Значение меняет имя файла на выходе, но их может и не быть если писать всё руками в блоке "для линковки".

OBJ_EXT = obj

LIB_EXT = lib - аналогично, используется для дальнейшего более простого перевода проекта

PROTOOL_SRC = [Путьдо прошки]\protoolkit - это то что надо прописывать самим, но по сути это также переменная со значением, просто теперь она непосредственно к вашей машине

PROTOOL_SYS = $ (PROTOOL_SRC)/$(PRO_MACHINE_TYPE) - это вот как раз пример применения переменных и образование из 2х переменных третьей

PRODEV_SRC = [Путьдо прошки]\prodevelop - аналог информации об protoolkit, только для prodevelop части

PRODEV_SYS = $ (PRODEV_SRC)/$(PRO_MACHINE_TYPE) - аналог...

Вот ниже за значками "#"(это значёк строки-комментария, всё что за ним в строке не выполняется) скрыт путь облегчающий все вписывания. Если постирать значки с этих строк, и поставить их напротив 4'х строк выше (то есть включить одни выключить другие включиь), то ничего прописывать не надо. Переменные $(PTCSRC) и &(PTCSYS) определяются инсталятором при установке Прошки если отметить protoolkit и prodevelop для установки.

Затем идёт строка типа:

INCS = -I. -I$... - это строка организует переменную содержащую необходимую часть для строки запускающей компиляцию. Это те пути по которым при компиляции происходит поиск необходимых файлов *.с Запись "-I." значит что искать рядом с файлом запуска компилятора, в той же самой папке.

Далее блок подготовки к компиляции:

СС = cl - это собственно аналог строки СС = cl.exe - по сути переменная, но по смыслу это название самого компилятора. В Лине это скорее всего будет gcc

MACH = -DPRO_MACHINE=29 -DPRO_OS=4 - переменная, по сути тут определяется тип машины и тип операционной системы для которых будет производиться компиляция. Выше значением i486_nt мы только определили папку из которой будет что-то браться, тут же конкретно - что за машина и что за система. Вполне вероятно, что эти значения можно использовать и в скрипте написав нечто вроде условий "если система такая, то..." (об этом ниже).

CCFLAGS = -c -fp:precies -DUSE_ANSI_IOSTEAMS -D_USE_32BIT_TIME_T - это больше относится к вопросу "как компилировать?"

флаг "" - (эээ... посмотрю позже)

флаг "-fp:precies" - точные вычисления с плавающей точкой

флаг "-DUSE_ANSI_IOSTEAMS" - заставляет компилить со стандартными библиотеками потока ввода вывода повышенной точности

флаг "-D_USE_32BIT_TIME_T" - использовать 32'х битный тип времени

воопче "-d..." - определяет константу препроцессора, может просто объявить константу, но также и определить. Разница между объявленная и определённая в том, что со значением второй можно совершать определённые действия. Любая определённая является объявленной. Например если мы видим переменную WinNT то мы в Виндах (это объявить), если значение переменной равно 4, то мы в Windows NT, если 5, то в 2000, если 51, то в XP, если 6 в Viste (понятно теперь почему Windows 7 ? :smile: )

CFLAGS = $(CCFLAGS) $(INCS) $(MACH) - объединяет все части в одну строку

PTCLIBS = ... - это создаёт перечень ProE библиотек для *.exe файла Это proe libs

PTCLIBS_DLL = ... - тожесамое только для dll Это proe libs тоже, но для *.dll.

LIBS = ... - это такой дефаулт набор по умолчанию, библиотеки должны быть именно такими какие они в любом примере, это для Винды. Иначе линковка не пройдёт. Это system libs.

OBJS =... - это строка перечислений объектов. Это obj - такм макаром получается что у нас уже всё есть для линковки, но пока не для компилиции.

LINK = link - всё равно что "LINK = link.exe" - аналогично как с переменной СС и компилятором cl.exe

$(EXE) : $(OBJS) $(PTCLIBS) - это метка, но метка не простая, а определённая переменной, такая хитрозадая метка

@echo Start at `date` - это означает вывести в поле отчёта (белое поле внизу Студии) "Start at " и взятую во время вывода дату

@echo PROTOOL_SRC = $(PROTOOL_SRC) - тоже самое - вывод, только теперь речь об переменной и её значение подставляется во время вывода

@echo PROTOOL_SYS = $(PROTOOL_SYS) - аналогично

#Executable applications compiled using WinMain() instead of main() should set the subsystem to windows instead of console. - собственно комент

$(LINK) /subsystem:console -out:$(EXE) /debug:none /machine:i386 @<<longline.list $(OBJS) $(PTCLIBS) $(LIBS)<< - это вот строчка запускает процесс линковки, говоря попутно как компилить:

/subsystem:console - это означает что будет вроде как консольное приложение, тут как раз получается что Протулс испльзует свои библиотеки окон, потому наверно всё консоль.

-out:$(EXE) - говрит что на выходе. Тоесть мы вот тут и говорим что на выходе, а никакие там записи в Студии и не MAKEFILENAME. Для dll имеем ниже соответствующую строчку.

/debug:none - отключает процесс дебага, служащий для отлова ошибок. Вполне вероятно в собственном приложении подобное будет актуально.

/machine:i386 - опять же архитектура машины

Вот что такое @<<longline.list ... << для меня осталось загадкой, но подозреваю что это либо скрытие для показа, либо просто предупреждене системе что сейчас полезет длинный лист включений, пусть выделяет побольше памяти или может ещё что-то

del $(OBJS) - удаляет *.obj файлы, зачем? - загадка, может чтоб ошибок избежать... работает нормально и без этой строчки, тут наверно вопрос либо правильного подхода, либо какойто особенности программиста.

Метки clean запускают процесс чистки *.exe/*.dll и *.obj и зачем-то пытаются запустить билд-скрипт с именем проекта

Также в билд-скрипте от pt_geardesign (а собственно на его основе тут и речь) есть пустая вторая метка dll: $(exe_dll) - по всей вероятности случайно оставленая тут разработчиками

Ссылка на сообщение
Поделиться на других сайтах

VitAl2013, хоть данная тема сильно смахивает на безрезультатный монолог, хочу сказать, что Вас слушают и благодарят!

Спасибо!

Когда руки дойдут до тулкита, обязательно воспользуюсь Вашими советами! :smile:

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...