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

Pro\Toolkit, Java, VBA


VitAl2013

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

Вот темка <noindex>http://gunsmoker.blogspot.com/2009/04/proe...delphi-lib.html</noindex> - там человек собрал из .lib файлов одну большую DLL в ней все функции из ProoToolKit -a, там как раз он и саму DLL выложил

За это огромное спасибо!

только что создал DLL для WF4 M080 Win64

сейчас буду проверять ее работоспособность.

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


Тыкс, может что-то не работает или работает не так... Всем видны "Соседние ссылки" в шапке?

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

Тыкс, может что-то не работает или работает не так... Всем видны "Соседние ссылки" в шапке?

Да все там работает, там есть ссылка на эту тему, просто видимо не все прочли, поэтому я себе позволил продублировать таким образом(акцентрируя внимание на том, что DLL там выложили).

У кого получится использовать функции из этой DLL для написания своих программ, поделитесь опытом пжста. У меня лично проблемы с входными параметрами возникли и значениями, возвращаемыми функцией, конкретно с функцией создания PushButton

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

Не думал, что этот вопрос так актуален, поэтому понадёргал кода из своего рабочего проекта и сбацал на Delphi небольшую демку: программке указывается любой ProEngineer-ный файл, а она показывает его атрибуты и состав. Демку выложил в <noindex>той же теме</noindex>. В том же архиве лежат транслированные заголовочники под Delphi (не все, разумеется) - можно брать, кому надо.

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

VitAl2013 в Visual Studio 2008 Вы настраивали проект используя Pro/Toolkit из какой версии Pro/ENGINEER Wildfire?

P.S. Кстати вопрос на засыпку, можно ли применить настройки компилятора из файла make_async к проекту Win 32 Console Application напрямую из файла?

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

пардонте, может кто сталкивался с проблемой...

устанавливаю дополнение к прое (смартелектрод)

запускаю прое , выдает ошибку:

"SMARTElectrode 6.0": ошибка PRO_TK_GENERAL_ERROR

в чем может быть дело :cry_1:

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

пардонте, может кто сталкивался с проблемой...

устанавливаю дополнение к прое (смартелектрод)

запускаю прое , выдает ошибку:

в чем может быть дело :cry_1:

Господа кто может помочь ??? Та же проблема :surrender:

Винда 7 64 битная, прое Wf5M060(64битный)

Причем в на этой же машине только в WF3(32битный) SMARTElectrode 6.0 установился и нормально работает, но хочется все таки чтоб в 5WF работал.

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

У меня тоже PRO_TK_GENERAL_ERROR, правда не с Smart Electrode а с моим проектом на Visual Studio 2008 откомпилированным как 64 разрядная DLL с использованием Pro/Toolkit. А теперь знатокам Pro/Toolkit вопрос. Что они намутили с тулкитом что нифига не работает!? :gun_guns:

Теперь по делу. Настройки компилятора, при которых проект все таки компилируется без ошибок (указываю только те, которые менял):

----------------------------------------------------------------

Раздел General:

Configuration Type - Dynamic library (*.DLL)

----------------------------------------------------------------

Раздел Debugging:

Command - C:\ptc\PROE5\proe64\bin\proe.exe

Working directory - c:\Toolkit\WIN64_TEST_DLL\x64\Debug\

----------------------------------------------------------------

Раздел С/С++:

--------------------------

Подраздел General:

Additional Include Directories - C:\ptc\PROE5\proe64\protoolkit\protk_appls\includes;C:\ptc\PROE5\proe64\protoolkit\includes;C:\ptc\PROE5\proe64\prodevelop\includes

Debug information Format - Program Database for Edit & Continue (/ZI)

Warning Level - Level 3 (/W3)

--------------------------

Подраздел Optimization:

Optimization - Disabled (/Od)

--------------------------

Подраздел Preprocessor:

Preprocessor Definitions - PRO_MACHINE=35;PRO_OS=4;hypot=_hypot;MSB_LEFT;far=ptc_far;huge=p_huge;near=p_near;recise;_X86_=1;_WS

TDIO_DEFINED

--------------------------

Подраздел Code Generation:

Enable Minimal Rebuild - Yes (/Gm)

Basic Runtime Checks - Both (/RTC1, equiv. to /RTCsu)

Runtime Library - Multi-threaded Debug DLL (/MDd)

--------------------------

Подраздел Language:

Treat wchar_t as Built-in Type - Yes

--------------------------

Подраздел Precompiled Headers

Create/Use Precompiled Header - Not Using Precompiled Headers

----------------------------------------------------------------

Раздел Linker:

--------------------------

Подраздел General:

Enable Incremental Linkung - Yes (/INCREMENTAL)

Additional Library Directories - C:\ptc\PROE5\proe64\protoolkit\x86e_win64\obj;C:\ptc\PROE5\proe64\prodevelop\x86e_win64\obj

--------------------------

Подраздел Input:

Additional Dependencies - prodevelop.lib protoolkit.lib prodev_dll.lib protk_dll.lib libcmt.lib kernel32.lib user32.lib wsock32.lib advapi32.lib mpr.lib winspool.lib netapi32.lib psapi.lib gdi32.lib shell32.lib comdlg32.lib ws2_32.lib

Ignore Specific Library - MSVCRTD.lib

--------------------------

Подраздел Debugging:

Generate Debug Info - Yes (/DEBUG)

--------------------------

Подраздел System:

SubSystem - Console (/SUBSYSTEM:CONSOLE)

--------------------------

Подраздел Advanced:

Randomized Base Adress - Disable Image Randomization (/DYNAMICBASE:NO)

Data Execution Prevention (DEP) - Default

Target Machine - MachineX64 (/MACHINE:X64)

Теперь сам исходник (вообще уже все левое поубирал)

#include <ProToolkit.h>

#include <ProCore.h>

#include <ProMenu.h>

#include <ProMenuBar.h>

#include <ProWstring.h>

#include <ProMessage.h>

#include <ProUtil.h>



#include <ProSection.h>

#include <ProSecerror.h>

#include <ProMdl.h>

#include <Pro2dEntdef.h>

#include <ProFeature.h>

#include <ProFeatType.h>

#include <ProSolid.h>

#include <ProWindows.h>



static ProName msgfil;



static uiCmdAccessState TestAccessDefault(uiCmdAccessMode access_mode)

{

	return (ACCESS_AVAILABLE);

}



/*===========================================================================*\

  Function : main

  Purpose  : Call the ProToolkitMain() function. main is optional function.

\*===========================================================================*/

extern "C" int main(int argc, char *argv[])

{

	ProToolkitMain(argc, argv);

	return(0);

}



/*===========================================================================*\

  Function : user_initialize

  Purpose  : Required entry point for Pro/Toolkit

\*===========================================================================*/



extern "C" int user_initialize (int argc, char *argv[])

{

	return 0;

}



extern "C" void user_terminate()

{

	return;

}

Компилируем - ошибок 0 предупреждений 0, все ок.

Делаем trotk.dat

name   WIN64_TEST_DLL

startup dll

exec_file WIN64_TEST_DLL.dll

text_dir c:\Toolkit\WIN64_TEST_DLL\x64\Debug

allow_stop true

delay_start false

end

Запускаем Pro/Engineer и видим:

Ошибка запуска приложений WIN64_TEST_DLL

Ошибка при инициализации программы стороннего формата "WIN64_TEST_DLL": ошибка PRO_TK_GENERAL_ERROR

Знатоки Pro/Toolkit где я ошибся? :surrender:

P.S. Про асинхронное я вообще молчу, даже не получается откомпилировать

P.P.S. Для Multi Thread DLL (без Debug) настройки несколько отличаются, но та же фигня

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

А та та, асинхронное приложение настроил, полет нормальный. :lighten: С DLL пока не понятно, жду ответов.

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

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

ВизуалСтудии нету, потому решил не на Си++ , а на JAVA попробовать, благо есть отличная для него фигня, называется NetBeans IDE 6.9

Заодно в JAVA решил разобраться.

Прикольно, удобно работать....

Надеюсь, набор библиотек для них одинаков и все будет работать как надо!!!

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

Можешь еще заюзать weblink. Тогда можно делать с веб интерфейсом приложения, а сама библиотека реализует свои возможности с помощью JavaScript. Правда урезан функционал в сравнении с JLinc и Toolkit.

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

Вместо PRO_MACHINE=35 надо для win64 записать PRO_MACHINE=36

Вместо /MACHINE:X64 надо /MACHINE:AMD64

это уже не нужна _X86_=1

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

Вместо PRO_MACHINE=35 надо для win64 записать PRO_MACHINE=36

Вместо /MACHINE:X64 надо /MACHINE:AMD64

это уже не нужна _X86_=1

PRO_MACHINE=36 - заменил

_X86_=1 - убрал

/MACHINE:AMD64 - у меня нет такого варианта данной опции

В итоге ситуация не изменилась...

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

ВОТ к 2001 к примеру

@echo off

if NOT "%PTC_BMODE%" == "" goto skipifbmode

@echo off

set MC=unset

set MC=i486_nt

if "%PROCESSOR%" == "INTEL_64" set MC=ia64_nt

if "%PROCESSOR%" == "INTEL_486" set MC=i486_nt

if "%PROCESSOR%" == "MIPS_R4000" set MC=r4000_nt

if "%PROCESSOR%" == "Alpha_AXP" set MC=alpha_nt

if "%PROCESSOR_ARCHITECTURE%" == "IA64" set MC=ia64_nt

if "%PROCESSOR_ARCHITECTURE%" == "x86" set MC=i486_nt

if "%PROCESSOR_ARCHITECTURE%" == "MIPS" set MC=r4000_nt

if "%PROCESSOR_ARCHITECTURE%" == "ALPHA" set MC=alpha_nt

if not "%winbootdir%" == "" set mc=i486_win95

if not "%MC%" == "unset" goto mc_done

echo ERROR Cannot detect what machine type you have.

echo Please make one of the following settings:

echo.

echo set PROCESSOR=Alpha_AXP - For Windows NT Alpha based machines.

echo.

echo set PROCESSOR=MIPS_R4000 - For Windows NT MIPS based machines.

echo.

echo set PROCESSOR=INTEL_486 - For Windows NT Intel based machines.

echo.

echo set PROCESSOR=INTEL_64 - For Windows Intel Itanium based machines.

echo.

echo set winbootdir=<boot dir> - For Windows 95/98 machines.

echo.

exit

:mc_done

if NOT "%mc%" == "i486_win95" goto postenv4096

if "%env4096%" == "true" goto postenv4096

set env4096=true

command.com /E:4096 /C %0 %1 %2 %3 %4 %5 %6 %7 %8 %9

set env4096=

goto ptc_end

:postenv4096

set PRO_MACHINE_TYPE=%MC%

if "%PROOBJ_START_DIRECTORY%" == "" set PRO_DIRECTORY=

if NOT "%PRO_DIRECTORY%" == "" "%PRO_DIRECTORY%\bin\%MC%_ptc_setvars" %0 "proe2001" bat

if "%PRO_DIRECTORY%" == "" %MC%_ptc_setvars %0 "proe2001" bat

call ptc_setvars.bat

del ptc_setvars.bat

if NOT "%mc%" == "i486_win95" set start_cmd=start ""

if "%mc%" == "i486_win95" set start_cmd=start

set PRO_DIRECTORY=%PRODIR%

if NOT "%PTCPATH%" == "" goto ptcpathset

if NOT "%mc%" == "i486_win95" goto not95

set path="%PRO_DIRECTORY%\bin;%path%"

goto pathdone

:not95

set path=%PRO_DIRECTORY%\bin;%path%

:pathdone

set PTCPATH=true

:ptcpathset

REM ptc-cmdtype: proe

if NOT "%INTRALINK_DIR%" == "" goto ptidir

set INTRALINK_DIR=__INTRALINK_DIR__

if "%INTRALINK_DIR%" == "__INTRALINK_DIR__" set INTRALINK_DIR=

:ptidir

if NOT exist "%INTRALINK_DIR%\%MC%\illib\proilws.dll" goto ptcdefpathset

if NOT "%mc%" == "i486_win95" goto not95two

set path="%INTRALINK_DIR%\%MC%\illib;%path%"

goto pdtwo

:not95two

set path=%INTRALINK_DIR%\%MC%\illib;%path%

:pdtwo

goto ptcilibpathset

:ptcdefpathset

if NOT "%mc%" == "i486_win95" goto not95thr

set path="%path%;%PRO_DIRECTORY%\%MC%\deflib"

goto pdthree

:not95thr

set path=%path%;%PRO_DIRECTORY%\%MC%\deflib

:pdthree

:ptcilibpathset

if NOT "%mc%" == "i486_win95" goto not95for

set path="%path%;%PRO_DIRECTORY%\%MC%\lib"

goto pdfour

:not95for

set path=%path%;%PRO_DIRECTORY%\%MC%\lib

:pdfour

set PRONCPOST_START=propostq

if "%PTCNMSPORT%" == "" set PTCNMSPORT=1239

"%prodir%\%mc%\nms\nmsq.exe" -quiet -ping

if "%NMSD_TIMEOUT%" == "" set NMSD_TIMEOUT=300

if ERRORLEVEL 1 %start_cmd% /min "%PRO_DIRECTORY%\%MC%\nms\nmsd.exe" -noservice -timeout %NMSD_TIMEOUT%

set PRO_COMM_MSG_EXE=%prodir%\%mc%\obj\pro_comm_msg.exe

set PROE_START=%prodir%\bin\proe2001.bat

if "%CDRS_DATA%" == "" set CDRS_DATA=%prodir%

set PRO_IMAGE_CONVERTER=%prodir%\%mc%\obj\convert_image.exe

set PRO_PHOTORENDER=%prodir%\%mc%\obj\PhotoRender.exe

set GALAXYHOME=%prodir%\%mc%

set PROGUIDE_DIRECTORY=%prodir%\uifdoc

set SPG_DIRECTORY=%\prodir%

set PRO_USRMAIN=%prodir%\usrprog\umain\usrmain.c

set PROTABLE_DIRECTORY=%prodir%\protable

set PROTAB=%prodir%\%mc%\obj\protab.exe

set CLHOME=%prodir%\text\pcldata

set CV_ENV_HOME=%prodir%\%mc%\CV110

if "%FLEXLM_BATCH%" == "" set FLEXLM_BATCH=1

if NOT "%LM_LICENSE_FILE%" == "" set LM_LICENSE_FILE=c:\PTC\License\ptcProE2001_licfile.dat;%LM_LICENSE_FILE%

if "%LM_LICENSE_FILE%" == "" set LM_LICENSE_FILE=c:\PTC\License\ptcProE2001_licfile.dat

set PROE_FEATURE_NAME=PROE_200

if exist "%PRO_DIRECTORY%\install\nt\pro_mech_loc.bat" set PRO_MECH_COMMAND=%0

if exist "%PRO_DIRECTORY%\install\nt\pro_mech_loc.bat" call "%PRO_DIRECTORY%\install\nt\pro_mech_loc.bat"

if NOT exist "%PRO_DIRECTORY%\install\nt\pro_mech_loc.bat" goto nomechloc

if exist "%MECH_LP%\install\nt\pro_mech_env.bat" call "%MECH_LP%\install\nt\pro_mech_env.bat"

:nomechloc

:skipifbmode

set slashb=

if %MC% == i486_nt set slashb=/b

if %MC% == r4000_nt set slashb=/b

if %MC% == alpha_nt set slashb=/b

set slashw=

if "%1" == "pro_wait" set slashw=/w

if "%2" == "pro_wait" set slashw=/w

if "%3" == "pro_wait" set slashw=/w

if "%4" == "pro_wait" set slashw=/w

if "%5" == "pro_wait" set slashw=/w

if "%6" == "pro_wait" set slashw=/w

if "%1" == "-v" set slashw=/w

if "%2" == "-v" set slashw=/w

if "%3" == "-v" set slashw=/w

if "%4" == "-v" set slashw=/w

if "%5" == "-v" set slashw=/w

if "%6" == "-v" set slashw=/w

if exist "%PRO_DIRECTORY%\ptc_startup.bat" call "%PRO_DIRECTORY%\ptc_startup.bat"

if exist "%HOMEDRIVE%\%HOMEPATH%\ptc_startup.bat" call "%HOMEDRIVE%\%HOMEPATH%\ptc_startup.bat"

if exist ".\ptc_startup.bat" call ".\ptc_startup.bat"

REM %start_cmd% "%PRO_DIRECTORY%\%MC%\obj\portmap.exe" -noservice

%start_cmd% %slashb% %slashw% "%PRO_DIRECTORY%\%MC%\obj\xtop" %1 %2 %3 %4 %5 %6

:ptc_end

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

Я настройки проекта VS делаю по make файлу

в зависимости от типа программки (встроенная dll или асинхронная)

Для встроенной использую один из make_examples, make_basic, make_install, make_install_md

для асинхронной make_async или make_async_md

все это лежит (Х:\ptc\proeWildfire5\protoolkit\x86e_win64\obj\)

Для включения /MACHINE:AMD64 в диалоге ставишь "Не задано" или "No"

а в командной строке компоновщика прописываешь ручками.

Пример make файла make_install_md

# PTC File

# Date Version Author Vers Comment

# --------- ------- -------- ----- -------------------------------------------

# 20-Oct-98 I-01-23 XYU @@1 Created.

# 15-Dec-98 I-01-27 XYU @@2 Remove pipe mode exec. file.

# 10-Nov-00 J-01-21 rct $$1 IA64_NT

# 24-Aug-01 J-03-07 mkulkarn $$2 1)Added note for compilation using WinMain()

# 2)Added CCFLAG /MD and changed NODEFAULTLIB to libcmd.lib from libc.lib

# 18-Sep-01 J-03-07+ HMR $$3 Added netapi32.lib for ctpfafs.

# 27-Jan-04 K-01-22+ hplab $$4 update ia64_nt .NET compilers Itanium2

# 04-Jun-04 K-03-03 ASRS $$5 x86e_win64 support

# 03-Aug-04 K-03-07 shkulkar $$6 removed obsolete compiler options

# 27-Aug-04 K-03-09 ksi $$7 Added psapi.lib

# 15-SEP-04 K-03-10 MTP $$8 Updated for new compiler

# 03-May-06 L-01-07 TWH $$9 add windows libraries

# 20-Jun-06 L-01-10+ KSV $$10 added ole32.lib

# 08-May-07 L-01-31 VSA $$11 Added the PTApplsUnicodeUtils.obj dependency

# 17-Oct-07 L-01-41 SA $$12 Changed pt_install_test_md.dll to pt_inst_test_md.dll

# 16-May-08 L-03-09 AC $$13 VS2008 porting changes

# 03-Jun-08 L-03-10 BI $$14 Added ws2_32.lib

# -----------------------------------------------------------------------------

# File Name

MAKEFILENAME = make_install_md

# Machine Type

PRO_MACHINE_TYPE = x86e_win64

# Executable names

EXE_DLL = pt_inst_test_md.dll

# Pro/Toolkit Source & Machine Loadpoint (EXTERNAL USE - DEFAULT)

PROTOOL_SRC = ../..

PROTOOL_SYS = $(PROTOOL_SRC)/$(PRO_MACHINE_TYPE)

# Pro/Toolkit Source & Machine Loadpoint (PTC INTERNAL USE)

#PROTOOL_SRC = $(PTCSRC)/protoolkit

#PROTOOL_SYS = $(PTCSYS)

# Include File Paths

INCS = -I. -I$(PROTOOL_SRC)/protk_appls/includes -I$(PROTOOL_SRC)/includes

# Compiler Flags

CC = cl

MACH = -DPRO_MACHINE=36 -DPRO_OS=4

CCFLAGS = /MD -c -GS -fp:precise -DUSE_ANSI_IOSTREAMS

CFLAGS = $(CCFLAGS) $(INCS) $(MACH)

# Libraries

PTCLIBS_DLL = $(PROTOOL_SYS)/obj/protk_dllmd.lib

LIBS = kernel32.lib user32.lib wsock32.lib advapi32.lib mpr.lib winspool.lib netapi32.lib psapi.lib gdi32.lib shell32.lib comdlg32.lib ole32.lib ws2_32.lib

# Object files

OBJS = TestInstall.obj TestError.obj TestRunmode.obj UtilString.obj PTApplsUnicodeUtils.obj

# Linker

LINK = link

# Dll target

dll: $(EXE_DLL)

$(EXE_DLL) : $(OBJS) $(PTCLIBS_DLL)

@echo Start at `date`

@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) /NODEFAULTLIB:libcmd.lib /subsystem:console -out:$(EXE_DLL) /debug:none /machine:amd64 /dll @<<longline.list

$(OBJS) $(PTCLIBS_DLL) $(LIBS)

<<

@echo Finished at `date`

del /f $(OBJS)

# object dependencies

PROTK_INST = $(PROTOOL_SRC)/protk_appls/pt_install_test/pt_install_src

PROTK_UTILS = $(PROTOOL_SRC)/protk_appls/pt_examples/pt_utils

TestInstall.obj: $(PROTK_INST)/TestInstall.c

$(CC) $(CFLAGS) $(PROTK_INST)/TestInstall.c

TestError.obj: $(PROTK_UTILS)/TestError.c

$(CC) $(CFLAGS) $(PROTK_UTILS)/TestError.c

TestRunmode.obj: $(PROTK_UTILS)/TestRunmode.c

$(CC) $(CFLAGS) $(PROTK_UTILS)/TestRunmode.c

UtilString.obj: $(PROTK_UTILS)/UtilString.c

$(CC) $(CFLAGS) $(PROTK_UTILS)/UtilString.c

PTApplsUnicodeUtils.obj: $(PROTK_UTILS)/PTApplsUnicodeUtils.c

$(CC) $(CFLAGS) $(PROTK_UTILS)/PTApplsUnicodeUtils.c

clean_dll :

del /f $(OBJS)

del /f $(EXE_DLL)

nmake -f $(MAKEFILENAME) dll

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

Ну я пробовал использовать проект, компилируемый make файлом. pt_install_test там в принципе есть и руководство как его сделать. Только не понял, когда добавляешь свои модули их нужно прописывать как-то так:

MyModule.obj: c:/MyProject/MyModule.c

$(CC) $(CFLAGS) c:/MyProject/MyModule.c

И еще как отлаживать такие проекты? ИМХО лучше настроенный компилятор и обычный проект.

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

Я открываю make файл в блокноте и по нему настраиваю проект.

Для отладки в студии использую команду "Присоединиться к процессу" и потом запускаю отладку.

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

Оффициально VS2008 в WF3 не поддерживается (офф поддерживается VS2003).

Я программировал под WF3 на VS2005.

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

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

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

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

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

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

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

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

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

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

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




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