Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 487
от 05.04.2004, 17:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1544
Отправлено ответов: 3110
Активность: 201.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Gibbel
Статус: Профессиональный
Общий рейтинг: 105.63
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Fess
Статус: Начальный
Общий рейтинг: 135.29
[Подробней >>]
lipa75
Статус: Доверительный
Общий рейтинг: 104.22
[Подробней >>]
 
ZagSer168
Статус: Начальный
Общий рейтинг: 105.66
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 109.01
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1539. Здравствуйте, уважаемые эксперты! Вопрос такой. Есть два файла .h и .obj, последний скомпилирован с ... (ответов: 1)
Вопрос № 1540. Здравствуйте. T *t= new T[20]; Изменяют ли следующие строки размерность массива t : t = new T[10]; t... (ответов: 1)
Вопрос № 1541. Здравствуйте. Обязательно ли обнулять указатель? (см. ниже) p = new int[10]; delete[] p; p = 0; ... (ответов: 4)
Вопрос № 1542. Здравствуйте. Какой лучше тип возвращаемого значения делать у следующих переопределенных операциях д... (ответов: 3)

Вопросов: 4, ответов: 9


 Вопрос № 1539

Здравствуйте, уважаемые эксперты! Вопрос такой. Есть два файла .h и .obj, последний скомпилирован с помощью Borland C++ Builder 5. Я подключаю эти файлы к своей программе,
которая пишется в той же среде, компилирую - всё работает. Но, когда решил ту же программу написать в MS Visual C++ 6, то появились проблемы. На этот .obj файл выдается ошибка:
"fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt".
Исходники этого файла я достать уже не могу. Может есть какая-нибудь утилита, которая конвертирует obj-файлы написанные с помощью C++ Builder, в формат понятный Visual С++? Или в самой IDE Visual C++, надо что-то настроить чтобы всё работало?
Спасибо большое!!!



Вопрос отправлен: 01.04.2004, 19:20
Отправитель: Amino

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Добрый день, Amino!
Насколько мне известно, форматы файлов .obj от Borland и Microsoft существенно различаются. Но даже если ты найдешь способ преобразовать объектный файл из одного формата в другой, ты встретишь другую проблему - в C++ Builder программы строятся на основе библиотек Borland'а (например, VCL), которые абсолютно не поддерживаются продуктами Microsoft.
Так что, ваша проблема не имеет решения. Ну, разве только восстановить исходники из .obj - файла и переписать их под компилятор Microsoft, но, все декомпиляторы .obj, которые я встречал, позволяют получить максимум текст на ассемблере с проставленными оригинальными именами меток.

Ответ отправлен: 02.04.2004, 10:33
Отправитель: Gibbel


 Вопрос № 1540

Здравствуйте.
T *t= new T[20];
Изменяют ли следующие строки размерность массива t :
t = new T[10];
t = new T[30];
Если не изменяют, то как можно изменить его размерность(без создания нового массива типа T и копирования в него данного массива)?
Есть ф-ии malloc и realloc, но они работают только со встроенными типами данных. Как поступить?
Спасибо.



Вопрос отправлен: 01.04.2004, 19:45
Отправитель: Andrey

[Следующий вопрос >>] [Список вопросов]

Отвечает Fess

Здравствуйте , Andrey! Почему ты используешь именно массив, ведь есть же огромное количество контейнеров, которые можно написать самому (если важна именно эффективность, или существующие тебе не подходят). А если сам писать не хочешь, в твоём распоряжении всегда есть STL. То, над чем ты мучаешься займёт от силы пару строк кода. Операции в STL простые, разберешься быстро. Исчезнет также проблема работы с пользовательскими типами данных. Короче, дерзай, массив не единственный и не самый удобный контейнер. Адиос!


Ответ отправлен: 03.04.2004, 14:08
Отправитель: Fess


 Вопрос № 1541

Здравствуйте.
Обязательно ли обнулять указатель? (см. ниже)
p = new int[10];
delete[] p;
p = 0; // обязательно ли обнулять указатель, или оператор delete[] сам его обнулит?
if( !p )
{
.....
}
Спасибо.



Вопрос отправлен: 01.04.2004, 19:45
Отправитель: Andrey

[Следующий вопрос >>] [Список вопросов]

Отвечает lipa75

Здравствуйте, Andrey!
Оператор delete[] указатель не обнуляет. Так что - обязательно.

Ответ отправлен: 02.04.2004, 14:46
Отправитель: lipa75


Отвечает Fess

Доброе время суток, Andrey! Зависит от реализации компилятора. Но если ты не обнулишь указатель, то считай, что его значение неопределено. Короче не обнуляет его delete!
Это точно, к гадалке не ходи!!!!!


Ответ отправлен: 03.04.2004, 14:18
Отправитель: Fess


Отвечает ZagSer168

Доброе время суток, Andrey!
В данном случае надо обнулять указатель, потому что оператор delete[] его сам не обнуляет.

Ответ отправлен: 02.04.2004, 02:03
Отправитель: ZagSer168


Отвечает vitya

Здравствуйте, Andrey!
Да, обязательно. delete только высвобождает память.

Ответ отправлен: 02.04.2004, 09:12
Отправитель: vitya


 Вопрос № 1542

Здравствуйте.
Какой лучше тип возвращаемого значения делать у следующих переопределенных операциях для созданного мною класса Vector:
+=
+
++
=
[]
Заранее спасибо.



Вопрос отправлен: 01.04.2004, 19:45
Отправитель: Hrom

[Следующий вопрос >>] [Список вопросов]

Отвечает Fess

Добрый день, Hrom! Не хочешь мороки- сделай шаблон (но только для возвращаемого значения его сделать не получится, поэтому в параметрах тоже должен быть хотя бы один такой же шаблон).


Ответ отправлен: 03.04.2004, 14:21
Отправитель: Fess


Отвечает ZagSer168

Приветствую Вас, Hrom!
У операций += = ++ тип Vector& (обратите внимание на знак &)
У "+" тип Vector
У "[]" тип T& (или другой в вашем случае, должен быть элемент, из которых составлен Vector)

Ответ отправлен: 02.04.2004, 03:44
Отправитель: ZagSer168


Отвечает vitya

Приветствую Вас, Hrom!
+= Vector &
+ Vector
++(void) Vector &
++(int) Vector
= Vector &
[] Type &/const Type &

Ответ отправлен: 02.04.2004, 09:11
Отправитель: vitya



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (24)
C / C++ (14)
Perl (1)
Builder / Delphi (17)
Pascal (19)
Basic / VBA (3)
Java / JavaScript (4)
PHP (8)
Криптография (6)
WinAPI (11)
Радиоэлектроника (8)
Пользователю
Windows 95/98/Me (38)
Windows NT/2000/XP (53)
"Железо" (27)
Поиск информации (18)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (9)
Юристу
Гражданское право (11)
Семейное право (10)
Трудовое право (10)
КоАП (7)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное