![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Mifody |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.8.2008 Репутация: нет Всего: 2 |
Всем доброго времени суток.
Ситуация: Есть программка, написана мной. Суть следующая - считывается информация из нескольких файлов TIFF (считывается именно структура данных, напрямую из файла, без каких либо компонент), на основании этой информации программно создается файл PSD (Adobe Photoshop). Файл то же создается чистым программным кодом, без компонент. Запустил программку на х64 (протц - Intel Core i7, система WinXP x64). Симптомы: Если серия TIFF файлов создается на 32 разрядной машине, копируется на 64 разрядную - все Ок, файл генериться. Если серия TIFF файлов создяется на 64 разрядной машине - ошибка. Причем два одинаковых файла (созданых нах64 и х32) одинаковы с точностью до байта. Что используется в программе: 1. TFileStream - поток для чтения и запись файлов 2. впеременные типа PChar, packed record (структуры сам писал) - для чтения и записи структур данных Что я предполагаю, из за чего ошибки: 1. Использование "универсальных" типов - нашол один баг, тип PChar принял значение PWideChar (кажется так пишется), когда поменял на тип PAnsiChar - в этом песте стало все Ок. 2. проблемы с адресным пространстовм файла - здесь не уверен, просто есть такие подозрения, у меня используется в упакованной записи тип WORD - по идее это двухбайтное число, так вот оно принимает совершенно "левое" значение (я примено помню порядок значений, какой должен быть). Для отладки сейчас использую RAD Studio 2010, писалось изначально в Delphi 7 Сам уже всю голову сломал, никак не могу "победить" это проблему, может кто поможет: 1. есть ли инфа мо типам данных для x64, наподобие таблички, к примеру PChar в х32 становится PAnsiChar, а в х64 становится PWideChar 2. чтение файлов пот х64, и какие проблемы были, могут быть 3. а можно ли собственно продолжать использовать Delphi 7, или прийдется переходить на RAD Studio. Мне просто непривычно, да и справка с непривычки кажется "кривой" И вообще, поделитесь пожалуйста инфой, с какими проблемами сталкивались при переходе на х64 и как их решали. З.Ы. Всем зарание агроменное спасибо за ответы. to Moderators,если не там создал, перенесите пожалуйста. Только сообщите через личку - чтоб я потом тему не потерял |
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
А пробовал под Delphi7 на win64? Или же поставил сразу win64 и Delphi 2010, а сравниваешь со старой на Delphi7?
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| Mifody |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.8.2008 Репутация: нет Всего: 2 |
Хм, на Delphi 7 не пробовал еще. А смысл есть?
Просто (я тока вспомнил) мне еще пришлось менять Integer на LongInt, хотя в Delphi 7 (по справке) и тот и тот "signed 32-bit". В него значение (адрес начала структуры данных) считалось больше размера файла |
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
Безусловно, либо поставить какой-н Delphi 2007. Почитайте про отличие Delphi 2010 от других версий.
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| Mifody |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.8.2008 Репутация: нет Всего: 2 |
Спасибо за наводку, обязательно попробую. Кстати Delphi 7 можно обойтись? Или обязательно ставить 2007?
|
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
Вполне и делфи 7 можно обойтись. Но, наверное, пора уже и на десятую переходить
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Mifody, в дельфи (еще?) нет 64-х битного компилятора, поэтому, программы выполняются в 32-х битном адресном пространстве, в режиме совместимости. Нет никакой разницы 32 или 64 (кроме апи-вызовов, которые местами имеют нюансы). Если файлы действительно одинаковы быйт в байт, то битность системы не имеет значения.
А изменение PChar с PAnsiСhar на PWideChar это из-за перехода на юникод. Попробуй использовать дельфи2010 на 32-х битной системе, и увидишь эффекты, которые ты сваливал на разрядность. -------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "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. |