Возможно ли как-то указать опционально компилятору, что размер заголовка для строки String (AnsiString) должен быть 8 байт?
Сейчас (в версии 3.0.4) используется более 8 байт, судя по описанию в доках это 16 байт.
Видимо это было сделано по аналогии с новыми версиями Delphi (начиная с 2009)?
m
При ...
Найдено 12 результатов
- 22.09.2018 02:37:55
- Форум: Free Pascal Compiler
- Тема: Изменить размер заголовка для типа String
- Ответы: 1
- Просмотры: 3600
- 07.09.2018 10:39:17
- Форум: Free Pascal Compiler
- Тема: Использование переменной счетчика после цикла FOR-Loop
- Ответы: 6
- Просмотры: 8269
Re: Использование переменной счетчика после цикла FOR-Loop
Спасибо всем за комментарии.
Уже переделал большую часть таких циклов на правильные, не зависящие от компилятора.
Согласен с тем, что если нужна переменная после\вне цикла - то проще сделать это через while..do.
Уже переделал большую часть таких циклов на правильные, не зависящие от компилятора.
Согласен с тем, что если нужна переменная после\вне цикла - то проще сделать это через while..do.
- 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 сразу выход из ...
Есть код:
for i := 0 to 10 do
Continue;
Writeln('Result: ', i);
На Delphi 2007:
Result: 11
На FPC:
Result: 10
То есть, в Delphi в конце цикла идет увеличение переменной и потом выход из него, в FPC сразу выход из ...
- 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 - никаких аномалий не заметил.
- 23.03.2016 15:51:41
- Форум: Общее
- Тема: Правильность использования TRTLCriticalSection в потоках
- Ответы: 8
- Просмотры: 28036
Re: Правильность использования TRTLCriticalSection в потоках
Проблема разрешилась.
Скачал новый NDK r11, обновил и пересобрал исходники FPC 3.0 и проекта без поддержки FPU. И теперь проблем с зависанием мьютексов на указанных устройствах нет.
Скачал новый NDK r11, обновил и пересобрал исходники FPC 3.0 и проекта без поддержки FPU. И теперь проблем с зависанием мьютексов на указанных устройствах нет.
- 12.03.2016 00:43:39
- Форум: Общее
- Тема: Правильность использования TRTLCriticalSection в потоках
- Ответы: 8
- Просмотры: 28036
Re: Правильность использования TRTLCriticalSection в потоках
Значит это проблема ядра ОС, системных библиотек? Потому как при смене устройства (а в месте с ней и сборки ядра) проблема исчезает.
Это врядли. Думаю, там все оттестировано давно. Скорее проблема где-то в FPC RTL или на стыке.
Чтобы строить более обоснованные предположения надо смотреть как оно ...
Это врядли. Думаю, там все оттестировано давно. Скорее проблема где-то в FPC RTL или на стыке.
Чтобы строить более обоснованные предположения надо смотреть как оно ...
- 10.03.2016 04:15:26
- Форум: Общее
- Тема: Правильность использования TRTLCriticalSection в потоках
- Ответы: 8
- Просмотры: 28036
Re: Правильность использования TRTLCriticalSection в потоках
Использование правильное, но, бессмысленное. Потому как в таком виде, когда КС для каждого потока создается своя, блокировок вообще не должно происходить.
Почему только TThread не использовать? Кстати, BeginThread isMultuthread устанавливает? Чтобы менеджер памяти многопоточным стал.
Что касается ...
Почему только TThread не использовать? Кстати, BeginThread isMultuthread устанавливает? Чтобы менеджер памяти многопоточным стал.
Что касается ...
- 09.03.2016 20:48:06
- Форум: Общее
- Тема: Правильность использования TRTLCriticalSection в потоках
- Ответы: 8
- Просмотры: 28036
Правильность использования TRTLCriticalSection в потоках
Задался вопросом правильности использования критических секций в потоках.
Хотя вроде и понимаю, надеюсь, но что-то подозрения терзают.
Есть такая тестовая функция потока:
function TestThread(__Data : Pointer): Integer;
var
c : integer;
cs : TRTLCriticalSection;
begin
c := 0 ...
Хотя вроде и понимаю, надеюсь, но что-то подозрения терзают.
Есть такая тестовая функция потока:
function TestThread(__Data : Pointer): Integer;
var
c : integer;
cs : TRTLCriticalSection;
begin
c := 0 ...
- 19.10.2015 00:48:37
- Форум: Free Pascal Compiler
- Тема: Скрыть\вырезать имена классов в бинарном файле
- Ответы: 18
- Просмотры: 22239
Re: Скрыть\вырезать имена классов в бинарном файле
Не стал закапываться пока в дебри исходников компилятора FPC, понемногу пишу свою утилиту-обфускатор.
Ну вот... всё пропало... я только обрадовался, и понадеялся что, теперь-то уж, в IDE для FPC появится полезная кнопочка, с прекрасным названием: "Обфускация", но Вы меня обломили в самых моих ...
Ну вот... всё пропало... я только обрадовался, и понадеялся что, теперь-то уж, в IDE для FPC появится полезная кнопочка, с прекрасным названием: "Обфускация", но Вы меня обломили в самых моих ...
- 18.10.2015 04:08:19
- Форум: Free Pascal Compiler
- Тема: Скрыть\вырезать имена классов в бинарном файле
- Ответы: 18
- Просмотры: 22239
Re: Скрыть\вырезать имена классов в бинарном файле
Обфускация - никогда не была 100% защитой, это лишь усложнение процесса понимания и восстановления кода. Этот метод защиты нужен только там, где в исполняемом файле\модуле есть связи\строки с исходным кодом. Если бы была возможность убирать любое упоминание названий классов\файлов модулей из ...
- 16.10.2015 15:54:52
- Форум: Free Pascal Compiler
- Тема: Скрыть\вырезать имена классов в бинарном файле
- Ответы: 18
- Просмотры: 22239
Re: Скрыть\вырезать имена классов в бинарном файле
Спасибо за ответ и подсказки.
Задача стоит: максимально затруднить отладку приложения. При наличии названий модулей\классов эта задача упрощается в несколько раз.
Хотя имена классов и не содержат ничего опасного, но они подсказывают логику работы приложения.
Единственный выход - обфускация имен ...
Задача стоит: максимально затруднить отладку приложения. При наличии названий модулей\классов эта задача упрощается в несколько раз.
Хотя имена классов и не содержат ничего опасного, но они подсказывают логику работы приложения.
Единственный выход - обфускация имен ...
- 15.10.2015 16:16:35
- Форум: Free Pascal Compiler
- Тема: Скрыть\вырезать имена классов в бинарном файле
- Ответы: 18
- Просмотры: 22239
Скрыть\вырезать имена классов в бинарном файле
В проекте существуют классы вида TMyObject, можно ли каким-либо образом скрыть\вырезать имена классов в бинарном файле (библиотека (Win).dll/(Linux/Android).so) после компиляции?
Есть ли стандартные средства компилятора для таких манипуляций?
Есть ли стандартные средства компилятора для таких манипуляций?
