Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.59.82.167] |
|
Сообщ.
#1
,
|
|
|
Добрый день!
скачал пример OPC Server. Скачал софт OPC Matricon. в нем я вижу свой сервер, могу к нему подключится и получать данные клиентом Matricon Explorer Единственное где я получаю ошибку это вызов названий транслируемых тегов. если прописать название тегов ручками в Matricon Explorer, то данные идут. помогите пожалуйста разобраться с ошибкой. скрин ошибки: https://yadi.sk/d/GMBUUv0Q3JNLwY Исходник: https://yadi.sk/d/Fr0GDODq3JNLyg 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; |
Сообщ.
#2
,
|
|
|
только что заметил что в Delphi XE работает,а в Delphi 10.2 нет
в Delphi XE: TPointerList = array[0..MaxListSize - 1] of Pointer; в Delphi 10.2: TPointerList = array of Pointer; может кто подскажет как поправить? |
Сообщ.
#3
,
|
|
|
Если не править исходник модуля, то просто отключить в свойствах проекта Range checking.
Или же заменить в исходнике TPointerList на PointerArray |
Сообщ.
#4
,
|
|
|
Огромнейшее спасибо. несколько дней разбирался до этого безрезультатно.
|