Здравствуйте, уважаемые эксперты! Вопрос такой. Есть два файла .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++, надо что-то настроить чтобы всё работало? Спасибо большое!!!
Добрый день, 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, но они работают только со встроенными типами данных. Как поступить? Спасибо.
Здравствуйте , Andrey! Почему ты используешь именно массив, ведь есть же огромное количество контейнеров, которые можно написать самому (если важна именно эффективность, или существующие тебе не подходят). А если сам писать не хочешь, в твоём распоряжении всегда есть STL. То, над чем ты мучаешься займёт от силы пару строк кода. Операции в STL простые, разберешься быстро. Исчезнет также проблема работы с пользовательскими типами данных. Короче, дерзай, массив не единственный и не самый удобный контейнер. Адиос!
Ответ отправлен: 03.04.2004, 14:08 Отправитель: Fess
Вопрос № 1541
Здравствуйте. Обязательно ли обнулять указатель? (см. ниже) p = new int[10]; delete[] p; p = 0; // обязательно ли обнулять указатель, или оператор delete[] сам его обнулит? if( !p ) { ..... } Спасибо.
Здравствуйте, 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: += + ++ = [] Заранее спасибо.
Добрый день, 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.