![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Приведение строк в Delphi для работы с Legacy DLLDelphi , Синтаксис , Память и УказателиВопрос о том, можно ли напрямую привести литералы строк (или константные строки) в Delphi 2009/2010 к типу При переходе на Delphi 2009 и последующем использовании 2010 версии, был изменен вызов функций на использование Возник вопрос: действительно ли необходимо двойное приведение (сначала к Константы, включая строковые литералы, по умолчанию не имеют типа, и компилятор адаптирует их под контекст использования. Если в строковом литерале нет не-ASCII символов, компилятор без труда сгенерирует строку в формате ANSI вместо Unicode. Типовые приведения не обязательны, если нет перегрузок функций, требующих помощи компилятора для разрешения неоднозначностей. Однако, если в константных строках присутствуют специальные символы, например, акцент в слове "Frédérick", то потребуется явно вызвать функцию конвертации строк, чтобы избежать потери данных. Примеры кода на Object Pascal (Delphi):
Важно помнить, что компилятор может генерировать константные строки в формате ANSI и Unicode автоматически, в зависимости от контекста использования, поэтому в большинстве случаев явные приведения типов не требуются. Вопрос связан с приведением строк в Delphi для корректной работы с Legacy DLL, где необходимо использовать C-стилевые указатели на символы, и возникает вопрос о необходимости двойного приведения строк из-за изменений в Delphi 2009/2010, связанных с подде Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Память и Указатели ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |