Я разрабатываю dll библиотеку на языке С++ для Lectus OPC/DDE Toolkit.
По моим логам я вижу, что
1) Библиотека загружается
2) Lectus вызывает экспортируемую функцию GetLcsDriver2(), но не GetLcsDriver(), как написано в Help.
Возвращается валидный указатель на объект, реализующий интерфейс ILcsDriver
3) Но OPC сервер не вызывает функцию ILcsDriver.Initial, соответственно, не появляется вкладка в окне "Добавить узел".
Скажите, пожалуйста, в чем может быть проблема? Возможно, OPC сервер хочет вызвать другую функцию и вовсе не Initial ?
Возможно, есть пример dll, написанной на C++?
Спасибо.
Ниже реализация функции GetLcsDriver2
Объвление метода Initial класса CLcsDBDriver (этот класс наследует интерфейс ILcsDriver).extern "C" __declspec(dllexport) ILcsDriver *__stdcall GetLcsDriver2(void); //прототип
ILcsDriver *__stdcall GetLcsDriver2(void) //реализация
/*
Данную функцию вызывает OPC сервер
Функция возвращает указатель на объект, реализующий интерфейс ILcsDriver
*/
{
return pDBdriver;
}
Код: Выделить всё
void __stdcall CLcsDBDriver::Initial(ILcsOPCServer* pOPCServer, ILcsComPort* pComPort,
std::string &sName, std::string & sDescript,
std::string & sHelpFileName, ILcsReceiveData *pReceiveData)