Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];

Вниз

Про дружбу KOL и FPC   Найти похожие ветки 

 
Galkov   (2009-07-06 18:49) [0]

У меня пока 2 конкретных вопроса
1) StrScan - падает нафиг под FPC
2) TObj.Destroy - нестыковка с конструкторами

По п.1 там как-то все понятно - у FPC особо тонкое понимание как надо выходить из ф-ии. Тут конкретное предложение: заменить RET на, например - INC EAX
Вроде это единственный RET в ф-иях, не имеющих PAS-версии

По п.2 - мне не все понятно. Все конструктора контролов идут через New, следовательно, завершением должно быть бы dispose ...
И что занимательно: так оно и было в "ранних версиях" KOL. Получается, что это сегодняшнее FreeMem не есть древний артефакт, а вновь сделанное.
Непонятка, неправильная какая-то.
Отсюда вопрос: а что такое случилась, что произошла замена dispose на FreeMem ???

Без понимания причин такового действа, трудно выработать какое-то компромисное решение :(
А надо бы.


 
Yury Sidorov   (2009-07-07 12:44) [1]

С FPC нужно использовать KOL-CE. Там, кроме этих проблем, исправлено еще много других.


 
Galkov ©   (2009-07-07 14:21) [2]

Зравствуйте, приехали :)

Вообще-то, меня в большей степени интересуют знания
Например, правильно, или нет - использование dipose после new. Может я чего-то недопонимаю - это гораздо страшнее, чем "упавшее приложение".

Если правильно - это один разговор. И надо разбираться далее, пополнять свое образование, например.
Если нет, то причем тут конкретное имя ветки - это положено фиксить в ЛЮБОЙ библиотеке.
((btw: да, я помню, первый раз именно на эту проблему мне именно Вы и указали, коллега))

"Много других" - это очень интересно, конечно. Но ведь очень важным является понимание, почему это множество не зафиксено в штатной версии.

Есть зание о какой-то баге => появляется знание о ее фиксинге => проводится фикс этой баги, независимо от ее локализации
Как-то мне представляется это более правильным, чем создавать различия не только в использовании WinApi, но и в объеме пофиксенных багов.
ИМХО :)


 
Galkov ©   (2009-07-07 14:24) [3]


> использование dipose после new

sorry - хотел написать "использование FreeMem после New" :)


 
Yury Sidorov   (2009-07-07 16:12) [4]

Использование FreeMem после New является хаком. Это сделано, чтобы не производилась финализация полей типа строка итд при уничтожении объекта. Это экономит какое-то количество байт кода.
В FPC такой хак не работает, поэтому нужно использовать корректную связку New/Dispose.

Портировать исправления назад в основную ветку KOL у меня нет желания. Тем более я отказался от ASM версии в KOL-СЕ...


 
Sapersky   (2009-07-07 16:21) [5]

Если "полей типа строка" (а также дин. массивов и прочих управляемых указателей) нет - тогда без разницы, компилятор при этом всё равно заменяет Dispose на FreeMem.
Если есть - можно заранее прибить их вручную. Собственно, в некоторых случаях (наследование) их приходится прибивать вручную (это рекомендуется в KOLBook, насколько помню), т.к. управляемые указатели не полностью совместимы с object (автоматически освобождаются поля только последнего уровня наследования).


 
Sapersky   (2009-07-07 16:33) [6]

Да, пост [5] относится к Delphi, как в FPC - не в курсе.


 
Galkov ©   (2009-07-07 16:58) [7]

Ага, понял. Спасибо парни, распояснили.

Однако, Хак - он и в Африке Хак. Грубо говоря корректная работа Хака не гарантирована даже в Дельфи. Выйдет от дяденьки Бормана какой-нибудь супер-пупер-релиз - и сосите фикус в саду у дяди Вани....

Не, Хак - это не правильно.
Противоречит профессиональному принципу: Не планируй себе проблемы, попробуй сначала справиться с теми, которые возникнут и без планирования :)

Вот интересно теперь, что на это скажет "начальник транспортного цеха" .......


 
Vladimir Kladov ©   (2009-07-08 15:30) [8]

От Борланда наверное уже ничего не выйдет. То что выходит (вроде turbo) - это уже не от него. В любом случае KOL лучше использовать со старыми Delphi, оптимально - версия 6. Для программинга под новые Windows 7 и далее все равно придется от win32 отказываться. Другое дело, помрет ли win32. Что-то сомнительно.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.002 c
15-1362121080
Jeer
2013-03-01 10:58
2013.07.21
Вдруг пригодится..


15-1360285956
Кто б сомневался
2013-02-08 05:12
2013.07.21
Медленная отрисовка 2D GDI Windows 7 (в 4.5 раза медленнее XP)


15-1362109704
Demo
2013-03-01 07:48
2013.07.21
Подскажите с PLSQL


15-1362244097
картман
2013-03-02 21:08
2013.07.21
а что такое "понимание платформы .net"?


2-1353795707
Екатерина
2012-11-25 02:21
2013.07.21
чат,ошибка сокета 11004





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский