Найдено 12 результатов

Rang
22.09.2018 02:37:55
Форум: Free Pascal Compiler
Тема: Изменить размер заголовка для типа String
Ответы: 1
Просмотры: 3600

Изменить размер заголовка для типа String

Возможно ли как-то указать опционально компилятору, что размер заголовка для строки String (AnsiString) должен быть 8 байт?
Сейчас (в версии 3.0.4) используется более 8 байт, судя по описанию в доках это 16 байт.
Видимо это было сделано по аналогии с новыми версиями Delphi (начиная с 2009)?
m

При ...
Rang
07.09.2018 10:39:17
Форум: Free Pascal Compiler
Тема: Использование переменной счетчика после цикла FOR-Loop
Ответы: 6
Просмотры: 8269

Re: Использование переменной счетчика после цикла FOR-Loop

Спасибо всем за комментарии.
Уже переделал большую часть таких циклов на правильные, не зависящие от компилятора.

Согласен с тем, что если нужна переменная после\вне цикла - то проще сделать это через while..do.
Rang
03.09.2018 16:10:42
Форум: Free Pascal Compiler
Тема: Использование переменной счетчика после цикла FOR-Loop
Ответы: 6
Просмотры: 8269

Использование переменной счетчика после цикла FOR-Loop

Столкнулся с проблемой при переходе с Delphi 2007 на FPC.

Есть код:

for i := 0 to 10 do
Continue;
Writeln('Result: ', i);


На Delphi 2007:
Result: 11

На FPC:
Result: 10

То есть, в Delphi в конце цикла идет увеличение переменной и потом выход из него, в FPC сразу выход из ...
Rang
28.03.2016 18:33:49
Форум: Общее
Тема: Правильность использования TRTLCriticalSection в потоках
Ответы: 8
Просмотры: 28036

Re: Правильность использования TRTLCriticalSection в потоках

Mirage писал(а):Так в чем проблема-то была? В NDK, FPC или FPU?

В FPC, а конкретнее в версии 2.6.4 (проект, как оказалось, собирался с этой версией). После того как вычистил все с "0" и пересобрал 3-ю версию FPC - все заработало.

При переключении между NDK r10e и r11 - никаких аномалий не заметил.
Rang
23.03.2016 15:51:41
Форум: Общее
Тема: Правильность использования TRTLCriticalSection в потоках
Ответы: 8
Просмотры: 28036

Re: Правильность использования TRTLCriticalSection в потоках

Проблема разрешилась.

Скачал новый NDK r11, обновил и пересобрал исходники FPC 3.0 и проекта без поддержки FPU. И теперь проблем с зависанием мьютексов на указанных устройствах нет.
Rang
12.03.2016 00:43:39
Форум: Общее
Тема: Правильность использования TRTLCriticalSection в потоках
Ответы: 8
Просмотры: 28036

Re: Правильность использования TRTLCriticalSection в потоках

Значит это проблема ядра ОС, системных библиотек? Потому как при смене устройства (а в месте с ней и сборки ядра) проблема исчезает.

Это врядли. Думаю, там все оттестировано давно. Скорее проблема где-то в FPC RTL или на стыке.
Чтобы строить более обоснованные предположения надо смотреть как оно ...
Rang
10.03.2016 04:15:26
Форум: Общее
Тема: Правильность использования TRTLCriticalSection в потоках
Ответы: 8
Просмотры: 28036

Re: Правильность использования TRTLCriticalSection в потоках

Использование правильное, но, бессмысленное. Потому как в таком виде, когда КС для каждого потока создается своя, блокировок вообще не должно происходить.
Почему только TThread не использовать? Кстати, BeginThread isMultuthread устанавливает? Чтобы менеджер памяти многопоточным стал.
Что касается ...
Rang
09.03.2016 20:48:06
Форум: Общее
Тема: Правильность использования TRTLCriticalSection в потоках
Ответы: 8
Просмотры: 28036

Правильность использования TRTLCriticalSection в потоках

Задался вопросом правильности использования критических секций в потоках.
Хотя вроде и понимаю, надеюсь, но что-то подозрения терзают.

Есть такая тестовая функция потока:
function TestThread(__Data : Pointer): Integer;
var
c : integer;
cs : TRTLCriticalSection;
begin
c := 0 ...
Rang
19.10.2015 00:48:37
Форум: Free Pascal Compiler
Тема: Скрыть\вырезать имена классов в бинарном файле
Ответы: 18
Просмотры: 22239

Re: Скрыть\вырезать имена классов в бинарном файле

Не стал закапываться пока в дебри исходников компилятора FPC, понемногу пишу свою утилиту-обфускатор.
Ну вот... всё пропало... я только обрадовался, и понадеялся что, теперь-то уж, в IDE для FPC появится полезная кнопочка, с прекрасным названием: "Обфускация", но Вы меня обломили в самых моих ...
Rang
18.10.2015 04:08:19
Форум: Free Pascal Compiler
Тема: Скрыть\вырезать имена классов в бинарном файле
Ответы: 18
Просмотры: 22239

Re: Скрыть\вырезать имена классов в бинарном файле

Обфускация - никогда не была 100% защитой, это лишь усложнение процесса понимания и восстановления кода. Этот метод защиты нужен только там, где в исполняемом файле\модуле есть связи\строки с исходным кодом. Если бы была возможность убирать любое упоминание названий классов\файлов модулей из ...
Rang
16.10.2015 15:54:52
Форум: Free Pascal Compiler
Тема: Скрыть\вырезать имена классов в бинарном файле
Ответы: 18
Просмотры: 22239

Re: Скрыть\вырезать имена классов в бинарном файле

Спасибо за ответ и подсказки.

Задача стоит: максимально затруднить отладку приложения. При наличии названий модулей\классов эта задача упрощается в несколько раз.
Хотя имена классов и не содержат ничего опасного, но они подсказывают логику работы приложения.

Единственный выход - обфускация имен ...
Rang
15.10.2015 16:16:35
Форум: Free Pascal Compiler
Тема: Скрыть\вырезать имена классов в бинарном файле
Ответы: 18
Просмотры: 22239

Скрыть\вырезать имена классов в бинарном файле

В проекте существуют классы вида TMyObject, можно ли каким-либо образом скрыть\вырезать имена классов в бинарном файле (библиотека (Win).dll/(Linux/Android).so) после компиляции?
Есть ли стандартные средства компилятора для таких манипуляций?