![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| lollollollol |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 12.3.2013 Репутация: нет Всего: нет |
Здравствуйте. Переношу проект с делфи 7 на делфи 2010 (необходимость в юникоде).
Проблема в том, что не могу скомпилировать поект.
на строке
помогите понять, что за несоответствие типов, и что к чему нужно приводить? Спасибо Это сообщение отредактировал(а) lollollollol - 17.7.2014, 14:26 |
||||
|
|||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Pchar в D7 = PAnsiChar в D2009up.
Соответственно - явно меняем Pchar на PAnsiChar, Char на AnsiChar... Больше всего засад будет, если строки используются в качестве бинарного буфера... Pngimage.pas - это чей модуль? В D2010 есть такой стандартный, может можно его использовать? Это сообщение отредактировал(а) kami - 17.7.2014, 16:31 |
|||
|
||||
| lollollollol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 12.3.2013 Репутация: нет Всего: нет |
незнаю, я при переносе проекта все .pas файлы в lib папку закинул от делфи7, без замены. Раз он не родной, значит его там небыло |
|||
|
||||
| lollollollol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 12.3.2013 Репутация: нет Всего: нет |
Ужас, не могу понять эту делфи 2010 вообще! раньше в семёрке я просто зажимал control, кликал по нужному uses и любовался его кодом. А тут неработает. и слева в списке модулей пытался кликать, нифига. чтото я торможу, подскажите как открыть код uses'a для просмотра/редактирования?
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Работает. И по клику, и через Ctrl +Enter. Пути пропиши правильно. $(BDS)\SOURCE\WIN32\VCL\pngimage.pas Должен быть. Добавлено через 2 минуты и 18 секунд Имеется ввиду - пути в Tools - Options - Library Win32 - Browsing path |
|||
|
||||
| lollollollol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 12.3.2013 Репутация: нет Всего: нет |
Спасибо, с этим разобрался, проект скомпилировался, проблемы начались дальше.
сразу при старте приложения высыпаются ошибки, первая: вопрос: есть переменная
если в неё записывается строка типа AnsiString, а потом передаётся в функцию которая хочет получить AnsiString, функция получит верные данные или ломаные? и как быть в таком случае? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Увидишь преобразование строк в действии. Вообще, компилятор должен выдавать хинты (или варнинги - не помню). Корректная перегодировка (особенно - UnicodeString => AnsiString) гарантирована только для английских символов, цифр и знаков препинания. С русскими и остальными может быть пичаль-бида. Как быть? Если функция твоя - переделывай всё под string. Если чужое - смотри, сможешь ли справиться, и если нет - ищи альтернативы. Возможно, в интернете уже есть адаптированное под юникод решение. Особенно советую обратить внимание на конструкции, содержащие Move, Copy (включая Stream.Write/Read), преобразования в PChar и т.п. Емнип, у Embarcadero целый раздел был по миграции на юникод, там всё отлично расписано. Добавлено через 3 минуты и 52 секунды Поверь на слово человеку, который несколько лет назад переводил большой проект с D7 на D2010 - гораздо проще вместо старого "чужого" модуля (пусть и отлично работавшего под D7) найти с похожим функционалом, но под юникод, чем копаться в куче малопонятного кода, заточенного под особенности AnsiString и ловить баги/глюки на ровном месте. Да, потребуется доработка/некоторое изменение своего кода. Но в конечном итоге это выйдет дешевле. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |