разработка встроенных функций в mathcad-15

Форум пользователей пакета Mathcad

Модератор: Admin

Anatolievitch
Сообщения: 3
Зарегистрирован: Пн янв 06, 2014 12:28 am

разработка встроенных функций в mathcad-15

Сообщение Anatolievitch » Пн янв 06, 2014 12:48 am

Всем привет!
Столкнулся с проблемой при разработке собственных встроенных функций в mathcad 15. В старых версиях mathcad успешно пользовался для создания dll компилятором borland c++. А здесь перекомпилировал dll, сделал описания, но mathcad 15 их все равно не видит. Если кто-нибудь сталкивался с проблемой - откликнитесь.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Ср янв 08, 2014 12:42 am

Выложите проект на dropbox или аналогичном хостинге, посмотрим.

Anatolievitch
Сообщения: 3
Зарегистрирован: Пн янв 06, 2014 12:28 am

Сообщение Anatolievitch » Ср янв 08, 2014 11:09 am

uni писал(а):Выложите проект на dropbox или аналогичном хостинге, посмотрим.

Видимо, дело не в проекте и не в совместимости borland-mathcad15. Та же история с проектом cmplxsum из примеров. Откомпилировал его в VS2005,компиляция прошла успешно, дальше, как положено: dll - в папку userefi, описание в файле user_EN. Открываю mathcad - функция в списке встроенных отсутствует. Из функций пользователя mathcad видит только DIGAMMA.DLL и KRONECKR.DLL, но для них исходников нет. Может это связано с какими-нибудь особенностями работы mathcad15 в win-7? Вообще, по какой причине mathcad может игнорировать dll в папке userefi? Искал такую проблему, где только можно, включая их сайт ptc, странно, но о такой проблеме даже не упоминается.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Ср янв 08, 2014 8:55 pm

Причина может быть в lib-файле, который идёт в составе дистриба. Я давно использую динамическую загрузку mcaduser.dll, изменив для этого немного mcadincl.h.

Mathcad может игнорировать пользовательские библиотеки, если они не загружаются. Либо, если не отрабатывает функция CreateUserFunction.

Вообще, отладчик студии может подсказать в чём дело. Можно открыть проект, указать целевое приложение, поставить точку останова на DllMain и запустить отладку. Когда Mathcad загрузит dll, то отладчик встанет на точке останова, далее нужно прошагать до кода регистрации функции и посмотреть что она возвращает.

В общем, можно сначала отладить в VS, а потом уже в борланде пробовать.

Anatolievitch
Сообщения: 3
Зарегистрирован: Пн янв 06, 2014 12:28 am

Сообщение Anatolievitch » Чт янв 09, 2014 8:31 pm

uni, спасибо за внимание к моей проблеме. Если я правильно понял, комбинация mathcad15+VS2005+win7 должны работать бесконфликтно? Тогда попробую еще пошаманить.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Чт янв 09, 2014 11:46 pm

И не только. Даже комбинация Mathcad Prime 3.0 + всё остальное будет работать, я проверял.