Pulsarius
-
Постов
32 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Активность репутации
-
Pulsarius получил реакцию от Vitaldj в Ошибка компиляции на macOS
Решено! Дело было действительно в слишком новой Xcode. Переустановил Xcode на версию 8.2 и всё стало компилиться.
-
Pulsarius получил реакцию от rareMax в Мусор при развёртывании приложений
Сейчас внимательно всё проверил и заметил, что компилятор C++ Builder не такой уж и глупый. Если посмотреть каким-нибудь PE Explorer'ом, то исполняемый файл не содержит ссылок на неиспользуемые bpl, если компилить с динамическими рантаймами, и не содержит их внутри, если компилить со статическими рантаймами. Это Deployment Manager и Project Information делают выводы об используемых bpl, видимо, исходя из cbproj файла, а не из анализа скомпилированного исполняемого файла, что, по-моему, несовсем корректно.
Ещё заметил такую неприятную вещь, исходя из опыта работы с другими IDE. У Embarcadero замечательные графические и неграфические библиотеки, которые очень ускоряют разработку софта и, как мне кажется, ни одна другая библиотека других фирм, не сравнятся с RAD Studio, плюс ещё и кроссплатформенность появилась. Но почему редактор кода-то такой отсталый? Напоминает нулевые года и вот почему:
1. Не высвечивает подсказки корректно, например, я пишу "TStringBuilder *builder = new ..." и разумеется логично в первой позиции подсказки предложить "new TStringBuilder()", но нет же, высвечивается всё, что угодно, но только не то, что по логике нужно.
2. Я считаю, что посказки должны показываться автоматом по первым символам, как в других IDE, а не по ручному нажатию "Ctrl + Space".
3. Поля и методы шаблонов и контейнеров STL вообще не подсвечивает, а это основа!
4. При требовании подсказки редактор может вообще задуматься на несколько секунд. Что там можно искать у класса из 3-х полей и 3-х методов, который объявлен в рядом лежащем файле?!
5. Почему, когда в хидере объявляешь метод, он автоматом не создаётся в сорс файле, а всё приходиться печатать вручную, как-будто кодишь в обычном текстовом редакторе?
6. При желании перейти от объявления метода к реализации или наоборот может перекинуть куда-нибудь не туда, либо вообще не отреагировать. В худшем случае "упасть".
7. Не предлогает переименовать все ссылки, если переименовывешь переменную или класс.
8. Зачем мне показывать хидер, где объявлен метод, когда я навожу мышкой на него, а не его сигнатуру, что тоже логичнее?
9. Бывает вообще никаких подсказок не выдаёт. Это когда что-то не дописал, решил вернуться чуть-чучть назад кое-что подправить, и всё, фиг с маслом. Для чего эта блокировка подсказок при якобы одной хотя бы ошибки? Или не высвечивает в таком случае "dynamicArray[dyn...]", а хочеться написать "dynamicArray[dynamicArray.Length - 1]".
Всё, что я привёл здесь в пример, в других IDE это давным давно уже это не новость и всё давно подсвечивается и подставляется. Это в Visual Studio, Qt Creator, CLion и других, даже в не сишных (IntelliJ IDEA, PyCharm, NetBeans и т.п.) и небольших IDE. Интересно, редактор кода RAD Studio дорастёт когда-нибудь тоже до такого?
-
Pulsarius получил реакцию от eser в Проект с FireDAC под Windows 64-bit на C++ Builder
Привет всем! Скажите, кто-нибудь сталкивался с проблемой компиляции проекта с использованием FireDAC в C++ Builder (RAD Studio 10 Seattle) под Windows 64-bit? В проекте есть такие компоненты, как TFDConnection, TFDQuery, TFDTable. TFDConnection настроен на работу с SQLite. При компиляции в режиме Release, естественно с отключенными Dynamic RTL и Link with runtime packages, под Windows 32-bit всё в порядке, а вот под Windows 64-bit происходит ошибка, как я понял, линковщика:
[ilink64 Warning] Warning: Out of memory [ilink64 Error] "ilink32" exited with code 2. Мне так кажется, что нет статических библиотек FireDAC для Windows 64-bit, и тем самым не удастся собрать проект со статической линковкой нужных либ, а только придётся таскать нужные библиотеки за exe-шником. Я правильно понимаю?
-
Pulsarius отреагировална estra в C++ Builder и BORLNDMM
Попробуй вырезать ненужную зависимость утилитой CFF Explorer
-
Pulsarius отреагировална Kitty в C++ Builder и BORLNDMM
Это баг. Обсуждалось здесь:
https://forums.embarcadero.com/thread.jspa?threadID=117351&tstart=15
Может исправят в первом апдейте, а может и нет.
-
Pulsarius получил реакцию от Brovin Yaroslav в RAD XE9 (RAD X Seattle)
https://onedrive.live.com/redir?resid=6F5EAC5B9D042042!4961&authkey=!AEoTXbnPYPhSm4I&ithint=folder%2cpdf
-
Pulsarius получил реакцию от Kitty в RAD XE9 (RAD X Seattle)
https://onedrive.live.com/redir?resid=6F5EAC5B9D042042!4961&authkey=!AEoTXbnPYPhSm4I&ithint=folder%2cpdf
-
Pulsarius получил реакцию от Kitty в RAD XE9 (RAD X Seattle)
"ОБУЧЕНИЕ МОБИЛЬНОЙ РАЗРАБОТКЕ НА DELPHI"
-
Pulsarius получил реакцию от Martifan в RAD XE9 (RAD X Seattle)
https://onedrive.live.com/redir?resid=6F5EAC5B9D042042!4961&authkey=!AEoTXbnPYPhSm4I&ithint=folder%2cpdf
-
Pulsarius получил реакцию от rustam_d в RAD XE9 (RAD X Seattle)
https://onedrive.live.com/redir?resid=6F5EAC5B9D042042!4961&authkey=!AEoTXbnPYPhSm4I&ithint=folder%2cpdf
-
Pulsarius получил реакцию от Andrey Efimov в RAD XE9 (RAD X Seattle)
https://onedrive.live.com/redir?resid=6F5EAC5B9D042042!4961&authkey=!AEoTXbnPYPhSm4I&ithint=folder%2cpdf
-
Pulsarius получил реакцию от XXXXXX в Помогите разобраться с кодом C#
Ты с ума сошёл в функцию массивы передавать
Замени
function opus_decode(st:OpusDecoder; data:array of Byte; len:Integer;var pcm: array of Byte; frame_size: Integer; decode_fec:Integer):Integer; cdecl; external 'opus.dll'; на
function opus_decode(st: OpusDecoder; data: PByte; len: Integer; pcm: PByte; frame_size: Integer; decode_fec: Integer):Integer; cdecl; external 'opus.dll'; Прототип функции ты неверно объявил. Дальше вызываешь функцию так:
Error := opus_decode(OPDecoder, @PreEnc[0], 9, @PreDec[0], 2000, 0); -
Pulsarius получил реакцию от XXXXXX в Delphi/C# IntPtr
Или можно ещё короче, если планируется работа с памятью по указателю:
var decodedPtr: Pointer; procedure MyProcedure(const MaxDataBytes: Integer); begin GetMem(decodedPtr, MaxDataBytes); end; И потом не забыть написать где-нибудь вот это, когда выделенная память больше не нужна:
... FreeMem(decodedPtr); ... -
Pulsarius получил реакцию от Martifan в Delphi/C# IntPtr
Или можно ещё короче, если планируется работа с памятью по указателю:
var decodedPtr: Pointer; procedure MyProcedure(const MaxDataBytes: Integer); begin GetMem(decodedPtr, MaxDataBytes); end; И потом не забыть написать где-нибудь вот это, когда выделенная память больше не нужна:
... FreeMem(decodedPtr); ... -
Pulsarius получил реакцию от Martifan в Delphi/C# IntPtr
var decodedPtr: Pointer; decoded: Array of Byte; procedure MyProcedure(const MaxDataBytes: Integer); begin SetLength(decoded, MaxDataBytes); decodedPtr:=@decoded[0]; end;