среда, 8 мая 2013 г.

JSON компоненты SuperObject в Lazarus

Это компонент для Delphi, который также работает и в Free Pascal.

Скачать можно отсюда. Версия 1.2.4
Устанавливать не нужно. Достаточно прописать в Uses один модуль superobject.

При компиляции выдает ошибку: superobject.pas(122,18) Error: No matching implementation for interface method "IUnknown.QueryInterface(constref TGuid,out <Formal type>):LongInt; StdCall;" found

Исправить нужно так, открыть в редакторе файл superobject.pas и там : 

найти 
function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
заменить на 
function QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid : tguid;out obj) : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};virtual;

найти 
varUString:  Result := TSuperObject.Create(SOString(string(VUString)));
и закомментировать её.

найти
function TSuperObject.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
заменить на 
function TSuperObject.QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid : tguid;out obj) : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};

Эти ошибки возникают из за изменений в библиотеках Free Pascal. Компоненты после этих исправлений работают как и положено.

Компоненты на мой взгляд удобнее стандартных и понятнее.
Примеры использования прилагаются к библиотеке.

Комментариев нет:

Отправить комментарий