Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
virtuhay266
12 / 11 / 1
Регистрация: 28.05.2009
Сообщений: 56
#1

C++ в Delphi - C++

06.12.2010, 00:14. Просмотров 323. Ответов 4
Метки нет (Все метки)

Всем привет!Проблема такова - есть код на с++, очень нужно преобразовать его в паскаль. Си я знаю плохо, поэтому на преобразование может потребоваться приличное время.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
typedef struct _ATTR_RECORD
{
/*0x00*/        ATTR_TYPES type; //тип атрибута
/*0x04*/        USHORT length; //длина заголовка; используется для перехода к //следующему   атрибуту
/*0x06*/        USHORT Reserved;
/*0x08*/        UCHAR non_resident; //1 если атрибут нерезидентный, 0 - резидентный
/*0x09*/        UCHAR name_length; //длина имени атрибута, в символах
/*0x0A*/        USHORT name_offset; //смещение имени атрибута, относительно заголовка 
                                          //атрибута
/*0x0C*/        USHORT flags; //флаги, перечислены в ATTR_FLAGS
/*0x0E*/        USHORT instance; 
 
        union
        {
                //Резидентный атрибут
                struct
                {
/*0x10*/        ULONG value_length; //размер, в байтах, тела атрибута
/*0x14*/        USHORT value_offset; //байтовое смещение тела, относительно заголовка 
  //атрибута
/*0x16*/        UCHAR resident_flags; //флаги, перечислены в RESIDENT_ATTR_FLAGS
/*0x17*/        UCHAR reserved;
                } r;
                //Нерезидентный атрибут
                struct 
                {
/*0x10*/        ULARGE_INTEGER lowest_vcn;
/*0x18*/        ULARGE_INTEGER highest_vcn;
/*0x20*/        USHORT mapping_pairs_offset;//смещение списка отрезков 
/*0x22*/        UCHAR compression_unit; 
/*0x23*/        UCHAR reserved1[5]; 
/*0x28*/        ULARGE_INTEGER allocated_size; //размер дискового пространства, 
 //которое было выделено под тело
 //атрибута
/*0x30*/        ULARGE_INTEGER data_size; //реальный размер атрибута
/*0x38*/        ULARGE_INTEGER initialized_size;
                } nr;
        } u;
} ATTR_RECORD, *PATTR_RECORD;
В основном, не очень понятна работа ключевого слова union.
Заранее спасибо!

Добавлено через 1 час 23 минуты
Хотя бы просто объясните работу union, а то толковой информации я не нашел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 00:14     C++ в Delphi
Посмотрите здесь:

Какие отличия Delphi 5, Delphi 6 и Delphi 7 - Delphi
Кто-нибудь юзал Delphi 6? Если да, то напишите, плиз, его отличия от 5-ой версии (плюсы и минусы) Кстати, никто не слышал ничего о Delphi...

ZipForge для Delphi Xe - интерфейс стал выглядеть как в Delphi 2007 - Delphi
Народ!!! Помоготи!!! Установил компонент ZipForge для Delphi Xe и после этого интерфейс моей программы стал таким, как будто я его в delphi...

Как в Lazarus сделать интерфейс Delphi 2006 вместо Delphi 7? - Lazarus
Добрый вечер! Подскажите пожалуйста, как в Lazarus сделать интерфейс Delphi 2006 вместо Delphi 7? Т.е. чтобы окна были прикрепленные, а не...

Какова разница работы одного кода в Delphi 7 и в Delphi XE5? - Delphi
Почему приложение состоящие из одинакового кода, но компилируемое в разных средах работает по разному? Есть клиент-серверное приложение,...

Delphi 7 SAPI ошибка в Delphi XE7 - Delphi
Привет знатоки поиске нашел sapi на delphi 7 работает а Delphi XE7 выдает ошибку на TTSNotifySink = class; unit Unit1; interface ...

Программа на Delphi внутри программы на Delphi - Delphi
Добрый вечер. Делаю тренажерный комплекс,состоящий из тестирования и программного тренажера. Все написаны на Delphi. Создал ещё один проект...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
06.12.2010, 00:30     C++ в Delphi #2
Обединение - это область памяти, которая используется для хранения переменных разных типов.Обединение позволяет нинтерпретировать один и тот жэ набор битов по разному.(Шилдт)
virtuhay266
12 / 11 / 1
Регистрация: 28.05.2009
Сообщений: 56
06.12.2010, 00:42  [ТС]     C++ в Delphi #3
Т.е. обращаться можно и к одному варианту и к другому, но если я запишу что-то в один вариант, то в другом будет мусор?
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
06.12.2010, 00:44     C++ в Delphi #4
virtuhay266, проще говоря, обединение - это тоже самое что и структура, только жрет менше памяти.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2010, 00:51     C++ в Delphi
Еще ссылки по теме:

Разница между Delphi 7 и Delphi XE3 - Delphi
Салам ребята:) Объясните если не сложно, в чем разница между ними ? и в чем приемучество delphi xe3. Если магете то своими словами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
virtuhay266
12 / 11 / 1
Регистрация: 28.05.2009
Сообщений: 56
06.12.2010, 00:51  [ТС]     C++ в Delphi #5
я втыкнул! в эту же структуру записывается блок данных с диска и определенные данные интерпретируются так, как в донный момент нужно.
Спасибо за помошь!
Yandex
Объявления
06.12.2010, 00:51     C++ в Delphi
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru