Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод кода с Delphi на C++(BMP), Перевод кода выведения характеристик BMP 
:(
    Опции темы
Skymit
Дата 24.5.2011, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.5.2011
Где: Знаменск

Репутация: нет
Всего: нет



[Delphi->С++]
Доброго всем дня smile
Используемые программы:  "Delphi 7 Lite Full Edition v7.3.4.1" и "Borland C++Builder 6 Enterprise Edition + UPDATE 4
 
".  

Увлекся программированием. Решил написать программу чтения характеристики и просмотра графических BMP-файлов.
На Delphi 7 я ее сделал. На C++ делаю аналагичную, но не могу додумать код вывода свойств bmp - изображения содержащегося в "dlgOpen1.FileName".
Вот готовая программа в Delphi( http://rghost.ru/7711891 ) и вот почти готовая программа в C++ ( http://rghost.ru/7712531 ).
Нужно сделать перевод когда из Delphi в C++


Вот код с Delphi:
Код

procedure TForm1.Button2Click(Sender: TObject);
 var
   fileheader: TBitmapfileheader;
   infoheader: TBitmapinfoheader;
   s: TFilestream;
 begin
   s := TFileStream.Create(dlgOpen1.FileName, fmOpenRead);
   try
     s.Read(fileheader, SizeOf(fileheader));
     s.Read(infoheader, SizeOf(infoheader));
   finally
     s.Free;
   end;
   listbox1.Items.Clear;
   listbox1.Items.Add(Размер файла:    ' + IntToStr(fileheader.bfSize) + ' байт.');
   listbox1.Items.Add('Ширина:       ' + IntToStr(infoheader.biWidth) + ' пикс.');
   listbox1.Items.Add('Высота:      ' + IntToStr(infoheader.biHeight) + ' пикс.');
   listbox1.Items.Add('Цвета:    ' + IntToStr(infoheader.biBitCount) + ' бит/пиксел');
 end;


Помогите пожалуйста разобраться smile 

Это сообщение отредактировал(а) Skymit - 26.6.2011, 18:49
PM MAIL WWW ICQ Skype MSN   Вверх
bsa
Дата 24.5.2011, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



С++ и Builder это немного разные вещи.
Прежде чем хвататься за С++, подумай хорошенько, а настолько сильно ли он тебе нужен, что ты готов потратить несколько лет на его освоение? За 21 день его освоить нереально!
PM   Вверх
Skymit
Дата 25.5.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.5.2011
Где: Знаменск

Репутация: нет
Всего: нет



Да smile 
Вы мне можете с кодом подсказать? smile 
PM MAIL WWW ICQ Skype MSN   Вверх
Usper
Дата 25.5.2011, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Ну если просто перевести код, то получится что-то вроде:
Код

TBitmapFileHeader fileheader;
    TBitmapInfoHeader infoheader;
    TFileStream *s;
    s = new TFileStream(dlgOpen1->FileName, fmOpenRead);
    try
    {
     s->Read(&fileheader, sizeof(fileheader));
     s->Read(&infoheader, sizeof(infoheader));
    }
    catch(...)
    {

    }
    delete s;
   ListBox1->Items->Clear();
   ListBox1->Items->Add("Размер файла:    " + IntToStr(fileheader.bfSize) + " байт.");
   ListBox1->Items->Add("Ширина:       " + IntToStr(infoheader.biWidth) + " пикс.");
   ListBox1->Items->Add("Высота:      " + IntToStr(infoheader.biHeight) + " пикс.");
   ListBox1->Items->Add("Цвета:    " + IntToStr(infoheader.biBitCount) + " бит/пиксел");

... правда почему-то какую-то фигню выдаёт. smile 


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
Skymit
Дата 25.5.2011, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.5.2011
Где: Знаменск

Репутация: нет
Всего: нет



Спасибо! Все работает smile 
Вот и она: http://rghost.ru/7918551  smile 
PM MAIL WWW ICQ Skype MSN   Вверх
Usper
Дата 26.5.2011, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Правда работает?  smile У меня какую-то ересь выдаёт. Файл как правило нулевого размера с офигенным разрешением под миллион на миллион пикселей.


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
Skymit
Дата 26.6.2011, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.5.2011
Где: Знаменск

Репутация: нет
Всего: нет



хе smile 
PM MAIL WWW ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.2450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.