Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

KOL(KOLIBEvents)+FreePascal [FreePascal, Windows]


ZiTrAX ©   (2006-09-23 19:17:00) 

Может это не совсем в ту ветку форума, но на ветке FreePascal что-то давно никого не было.
Короче, вопрос такой:
Как в FreePascal (v 2.0.4) скомпилировать модуль KOLIBEvents? А то FP при компиляции выдаёт такую ошибку:
                    ...
 KOLIBEvents.pas(123,35) Error: Wrong symbol type
 KOLIBEvents.pas(221) Fatal: There where 1 errors compiling module, stopping
 KOLIBEvents.pas(7,33) Fatal: Compilation aborted
                   ...

Указывает на строку в asm-коде (sub     eax,fResultBuffer-fEventBuffer), а я в ассемблере плоховато разбираюсь.


Vladimir Kladov   (2006-09-24 07:21:00) [1]

У кого она есть. Но вообще-то с FreePascal 2 эти модули уже не нужны, Тэдди несколько раз это говорил. (А я вот все еще не скачал 2й free pascal).


ZiTrAX   (2006-09-23 20:32:00) [2]

Вот полный текст этой процедуры:
procedure TIBEventsHandler.AllocateBuffers;
var
 i,iMax: Integer;
 NS: Array[0..14] of PChar;
begin
 iMax := 15;
 if fParams.Count < iMax then iMax := fParams.Count;
 for i:=0 to iMax-1 do NS[iMax-i-1] := fParams.ItemPtrs[i];
 fEventCount := iMax;
 asm
       push    ebx
       mov     ebx,iMax
       mov     ecx,ebx
       lea     eax,NS
@@1:
       mov     edx,[eax]
       push    edx
       add     eax,4
       loop    @@1
       push    ebx
       mov     eax,Self
       mov     ecx,eax
        add     eax,fResultBuffer
       push    eax
        sub     eax,fResultBuffer-fEventBuffer
       push    eax
       mov     eax,ecx
       mov     eax,[eax+fClientLib]
       push    eax
       call    TIBClientLib.isc_event_block
       add     esp,$0c
       shl     ebx,2
       add     esp,ebx
       mov     edx,Self
       mov     [edx+fBufferLen],ax
       pop     ebx
 end;
end;

С объявлением константы ничего не проходит (выдаёт на строке объявления KOLIBEvents.pas(101,36) Error: Illegal expression.
А компилятор вызывается c такими параметрами: fpc.exe -dRELEASE -Mdelphi -Rintel -XX -CX.
Вопрос личноВ. Кладову: если у меня нет лицензионной версии Delphi, имею ли я право использовать модули из архива ppDelphi.exe при написании коммерческих программ на FreePascal с использованием библиотеки KOL?


Vladimir Kladov   (2006-09-23 20:05:00) [3]

если включены все опции совместимости и не помогло, тогда стало быть не понимает вычитание в позиции операнда. Может помочь такое исправление: до asm декларируется константа
const razn = fResultBuffer-fEventBuffer;

и подставляется вместо разности. А вообще там что, нет только паскаль-версии кода разве? (Я еще не заглядывал внутрь пакета).


Наверх

Титульная страница Поиск, карта сайта Написать письмо