Форум: "KOL";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Вниз2 ECM: Насколько реально перепилить KOLIB под Kylix3 ? Найти похожие ветки
← →
uuzh © (2004-12-10 20:03) [0]Для меня это было бы весьма актуально, т.к. пришлось писать сервак у которого вся инфа ложится под Firebird (Linux)
Готов попытаться сам, но скорее всего не обойтись без квалифицированной помощи автора.
← →
ECM © (2004-12-11 10:53) [1]С удовольствием помогу... занялся бы сам - но времени сейчас ставить Linux и Kilyx нет (конец года сроки горят). Если замешься - будет огромная благодарность :)
Пиши на мыло - буду помогать...
← →
Gandalf © (2004-12-12 00:01) [2]Реально - могу по содействовать в развитии KOL-Kylix порта, вернее в доведении его до ума - там есть что поправить, даже на уровне консоли.
← →
dmd (2004-12-12 10:31) [3]ждем как из печки пирога ))
← →
uuzh © (2004-12-13 17:20) [4]2 Gandalf ©: Да, толком GlueCut KOL под Kylix не портирует. :(
Даже чтоб портануть только PObj и иже сним (в версии KOL 2.02) приходится править ручками. О PControl не говорю, т.к. Brush содержит HBitmap и потому QT его не понимает.
Если "маю час та надхнення" (имею время и вдохновение по-русски) то очччччень бы даже ...
Потому как чтоб портануть KOLIB желательно иметь KOL.
C признательностью за проявленное внимание и дружеское участие uuzh.
← →
ECM © (2004-12-13 18:10) [5]2 uuzh
В доработке KOLIB до совместимости с Linux (я бы это так назвал)
вижу пару моментов:
- доработать в первую очередь KOLIBase.pas кодом с условной компиляцией. Зачатки этого там есть - остальное по-моему не сложно (если пока не связываться с ассемблером).
- KOLIBdb.pas думаю должен пойти без изменений...
- Достаточно тесно завязан на Win - KOLIBEvents.pas. Там необходимо будет придумать какой-нибудь метод вместо IdleHandler. Но это тоже не проблема.. ИМХО..
Главное - это основа всего этого - KOL - :)
← →
uuzh © (2004-12-13 18:33) [6]2 ECM: 2-й день после работы бьюсь над KOL (под Kylix). Если Gandalf © что-нить присоветует то это будет резкое ускорение процесса :)
← →
uuzh © (2004-12-13 18:36) [7]PS: Над mirror для Kylix даже не надеюсь :)))) (по крайней мере в ближайшем обозримом будущем)
← →
Gandalf © (2004-12-14 21:55) [8]Так-с это у кого KOL не портиться под Kylix. С первого прохода без ручной правки - лежит на фтп - уже "отпорченый" и все что нужно. Про MCK говорить рано. Визуальность я в принципе для базовых контролов типа Button,EditBox,ListBox,ComboBox,Memo и т.п. сделал. Ini,Thread,Timer - надо переписывать с нуля, диалоги тоже - про мульти окна не говорю - есть чем заняться - но многое пашет. Есть еще пару багов со строками. Если есть конкретные проблемы - чиркани на почту - для меня сейчас актуально KOL+Kylix + БД (правда MySQL - и их под Kylix/"KOL" я уже добыл) - как и ICS - потому движем знамя по тихоньку. Я правлю до тех пор пока мои потребности гонят :)
← →
dmd (2004-12-15 09:12) [9]Посмотрите плиз как вот это поправить "undefined symbol: initPAnsiStrings". Возникает в тестовом проекте TestKOL.dpr после
ковертации через kylix-qt.sh
← →
uuzh © (2004-12-15 15:09) [10]2 Gandalf: Скачал, компилируется но...
Lst := KOL.NewStrList;
try
Lst.LoadFromFile("greetings.txt");
except
WriteLn("---Unable to load file");
end;
WriteLn("Lines in file:", Lst.Count);
в результате Lst.Count = 0;
Сам лист работает и если строки заносить типа:
procedure LoadList(filename:string; List:PStrList);
var
F:Text;
s: string;
begin
if not Assigned(List) then exit;
List^.Clear;
Assign(F,filename);
Reset(F);
repeat
ReadLn(F,s);
List^.Add(s);
until Eof(F);
Close(F);
end;
То всё ОК. К сожалению не смог просмотреть в чём трабл т.к. отладчик отваливается при попытке входа в Lst.LoadFromFile.
← →
uuzh © (2004-12-15 16:17) [11]2 ECM:
Добавил в KOL (KOLKYLIX от Gandalf c его ftp) в интерфейсной части
function LoadLibrary(ModuleName: PChar): HMODULE;
function GetProcAddress(Module: HMODULE; Proc: PChar): Pointer;
function FreeLibrary(Module: HMODULE): LongBool;
Убрал фукцию Format из KOLIBase, KOLIBdb. Скомпилировал с
NO_MULTITHREAD (т.к не нашёл аналогов для InitializeCriticalSection и т.п), дошёл до TIBClientLib.IscJump:
relocation error: /usr/lib/libgds.so.0: undefined symbol: crypt
← →
ECM © (2004-12-15 17:14) [12]TIBClientLib.IscJump - пока можно исключить вообще.
Можно закрыть его с помощью {$IFDEF MSWINDOWS}
Далее надо перепахать все функции TIBClientLib.isc_XXXXX примерно следующим образом:{$IFDEF MSWINDOWS}
function TIBClientLib.isc_interprete(buffer: PChar;
status_vector: PPISC_STATUS): ISC_STATUS;
const
fProcName: PChar = "isc_interprete"#0;
asm
lea edx,[eax+f_isc_interprete]
mov ecx,[fProcName]
call IscJump
xor eax,eax
end;
{$ENDIF}
{$IFDEF LINUX}
function TIBClientLib.isc_interprete(buffer: PChar;
status_vector: PPISC_STATUS): ISC_STATUS;
const
fProcName: PChar = "isc_interprete"#0;
begin
Result := 0;
if not Assigned(f_isc_interprete) then begin
f_isc_interprete := GetProcAddr(fLibHandle,fProcName);
if Assigned(f_isc_interprete) then
Result := f_isc_interprete(buffer,status_vector);
end;
end;
{$ENDIF}
← →
Gandalf © (2004-12-15 17:25) [13]А такой файл точно есть?
2uuzh
Пришли фикс...
← →
uuzh © (2004-12-15 17:44) [14]Попробую, Thx.
← →
uuzh © (2004-12-15 17:47) [15]2 Gandalf :
[uuzh@mcomm3 uuzh]$ locate libgds
/opt/interbase/lib/libgds.so.0
/opt/interbase/lib/libgds.so
/usr/lib/libgds.so
/usr/lib/libgds.so.0
← →
uuzh © (2004-12-15 17:52) [16]2 Gаndalf: Если имеется ввиду "greetings.txt" то в сампле ниже он работает ;) То бишь добавление строк в лист происходит.
← →
ECM © (2004-12-15 18:01) [17]З.Ы. Я там опечатался, конечно
Надо такfunction TIBClientLib.isc_interprete(buffer: PChar;
status_vector: PPISC_STATUS): ISC_STATUS;
const
fProcName: PChar = "isc_interprete"#0;
begin
Result := 0;
if not Assigned(f_isc_interprete) then begin
f_isc_interprete := GetProcAddr(fLibHandle,fProcName);
end;
if Assigned(f_isc_interprete) then
Result := f_isc_interprete(buffer,status_vector);
:)
← →
uuzh © (2004-12-15 18:20) [18]2 Gandalf:
procedure TStrList.SetText(const S: string; Append2List: boolean);
var
P, TheLast : PChar;
L, I : Integer;
procedure AddTextBuf(Src: PChar; Len: DWORD);
var OldTextBuf, P: PChar;
I : Integer;
begin
if Src <> nil then
begin
OldTextBuf := fTextBuf;
GetMem( fTextBuf, fTextSiz + Len );
if fTextSiz <> 0 then
begin
System.Move( OldTextBuf^, fTextBuf^, fTextSiz );
for I := 0 to fCount - 1 do
begin
P := fList.fItems[ I ];
if (DWORD( P ) >= DWORD( OldTextBuf )) and
(DWORD( P ) < DWORD( OldTextBuf ) + fTextSiz) then
fList.fItems[ I ] := Pointer( DWORD( P ) - DWORD( OldTextBuf ) + DWORD( fTextBuf ) );
end;
FreeMem( OldTextBuf );
end;
System.Move( Src^, fTextBuf[ fTextSiz ], Len );
Inc( fTextSiz, Len );
end;
end;
begin
if not Append2List then Clear;
if S = "" then Exit;
L := fTextSiz;
AddTextBuf( PChar( S ), Length( S ) + 1 );
P := PChar( DWORD( fTextBuf ) + DWORD( L ) );
if fList = nil then
fList := NewList;
I := 0;
TheLast := P + Length( S );
while P^ <> #0 do
begin
Inc( I );
P := StrScanLen( P, #10, TheLast - P );{ #10 - CR+LF for Unix- style OS}
if P^ = #13 then
Inc( P );
end;
Inc( fCount, I );
if fList.fCapacity < fCount then
fList.Capacity := fCount;
P := PChar( DWORD( fTextBuf ) + DWORD( L ) );
while P^ <> #0 do
begin
fList.Add( P );
P := StrScanLen( P, #10, TheLast - P );{#10 - CR+LF for Unix}
if PChar( P - 1 )^ = #10 then
PChar( P - 1 )^ := #0;
if P^ = #13 then Inc(P);
end;
end;
← →
Gandalf © (2004-12-16 09:32) [19]Лучше все на мыло ;)
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.034 c