Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Delphi: Общие вопросы > OPC Server |
Автор: Emmys 21.05.17, 10:16 |
Добрый день! скачал пример OPC Server. Скачал софт OPC Matricon. в нем я вижу свой сервер, могу к нему подключится и получать данные клиентом Matricon Explorer Единственное где я получаю ошибку это вызов названий транслируемых тегов. если прописать название тегов ручками в Matricon Explorer, то данные идут. помогите пожалуйста разобраться с ошибкой. скрин ошибки: https://yadi.sk/d/GMBUUv0Q3JNLwY Исходник: https://yadi.sk/d/Fr0GDODq3JNLyg <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> type TOPCStringsEnumerator = class(TComObject, IEnumString) private nextIndex:Integer; strList:TStringList; public constructor Create(const inStrings: TStringList); destructor Destroy;override; function Next(celt: Longint; out elt; pceltFetched: PLongint): HResult; stdcall; //функция //функция //функция //функция //функция //функция function Skip(celt: Longint): HResult; stdcall; function Reset: HResult; stdcall; function Clone(out enm: IEnumString): HResult; stdcall; end; function TOPCStringsEnumerator.Next(celt: Longint; out elt; pceltFetched: PLongint): HResult; var i: integer; begin i:=0; if celt < 1 then begin Result:=RPC_X_ENUM_VALUE_OUT_OF_RANGE; Exit; end; if pceltFetched = nil then begin Result:=E_INVALIDARG; Exit; end; Result := S_FALSE; while (i < celt) do begin if (nextIndex < strList.Count) then begin TPointerList(elt)[i]:=StringToLPOLESTR(strList[nextIndex]); Inc(i); Inc(nextIndex); end else begin Result:=RPC_X_ENUM_VALUE_OUT_OF_RANGE; Break; end; end; |
Автор: Emmys 21.05.17, 12:08 |
только что заметил что в Delphi XE работает,а в Delphi 10.2 нет в Delphi XE: TPointerList = array[0..MaxListSize - 1] of Pointer; в Delphi 10.2: TPointerList = array of Pointer; может кто подскажет как поправить? |
Автор: leo 22.05.17, 03:41 |
Если не править исходник модуля, то просто отключить в свойствах проекта Range checking. Или же заменить в исходнике TPointerList на PointerArray |
Автор: Emmys 22.05.17, 14:49 |
Огромнейшее спасибо. несколько дней разбирался до этого безрезультатно. |