This is topic Внешние функции - dll in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Подскажите как правильно создавать dll, как должны быть объявлены функции? Возможно существует SDK для создания внешних dll. Какой компилятор использовать для создания dll? Не могу найти ни одного документа, где бы это было описано. Подскажите где можно прочитать об этом. Заранее спасибо.
Posted by Romсheg (Участник № / Member № 3792) on :
Лучше всего внешние DLL создавать на С++ в средах: MS VS C++ 6.0 или MS VS C++ 2003. Пробовал делать в MS VS C++ 2005, но не заработало, видимо из-за особенностей managed кода. Правила создания - такие же как и для всех DLL - это можно и в MSDN почитать. Из особенностей - те функции, которые хотите вызывать из DLL в ТМ, должны быть экспортируемыми (надо правильно их определить в самой DLL), например так: extern "C" __declspec(dllexport) int __cdecl GetTankPH(int TankID)
И еще одна из особенностей - при подключении и описании аргументов внешних функций из подключаемой DLL все аргументы типа int в ТМ указывайте как long. Иначе возможны ошибки в реальном времени работы МРВ при обращении к DLL. Ну - это из личного опыта.
Posted by Alexandra (Участник № / Member № 3317) on :
а поддерживает ли MicroTM внешние dll ?
Posted by Romсheg (Участник № / Member № 3792) on :
Насколько я знаю - нет. Хотя под Микро МРВ для одного контроллера под управлением MS WinCE 5.0 писал драйвер УСО как RWH.DLL, но сомневаюсь, что под данную ОС API вызова внешних DLL будет работать и в математике.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
МикроМРВ не поддерживает внешние dll.
Posted by Baikal_E (Участник № / Member № 4135) on :
Поддерживает ли EmbeddedRTM внешние dll в WinCE ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
МикроМРВ (в том числе и для CE) не поддерживает внешние dll.
Posted by Baikal_E (Участник № / Member № 4135) on :