Страница 1 из 1

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

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

Добавлено: Ср янв 08, 2014 12:42 am
uni
Выложите проект на dropbox или аналогичном хостинге, посмотрим.

Добавлено: Ср янв 08, 2014 11:09 am
Anatolievitch
uni писал(а):Выложите проект на dropbox или аналогичном хостинге, посмотрим.

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

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

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

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

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

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

Добавлено: Чт янв 09, 2014 11:46 pm
uni
И не только. Даже комбинация Mathcad Prime 3.0 + всё остальное будет работать, я проверял.