Сейчас на форуме: zds (+5 невидимых) |
eXeL@B —› Программирование —› Update compiler & linker(папка BIN) для MS VS C++ 6.0 |
Посл.ответ | Сообщение |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 08 марта 2014 11:20 · Личное сообщение · #1 Вообщем на досуге, решил обновить папку BIN в древнем Microsoft Visual Studio 6 (косвенный повод: не понравилось, как не удачно код в цикле for был откомпилирован). Новые compiler & linker взял с VS 9.0 (2008). - Меньше всего проблем с линкером ака link.exe(при условии, если менять только его), для Release файл нормально линкуется(даже размер меньше ~20%, чем родным линкером 6.0). В Debug конфликты с file data base(впрочем, это неважно). - А вот с компилятором пришлось повозиться, используя олю. В конце концов он работать стал(Release), но дальше этих ошибок дело не идет: Code:
Причем даже если убрать/закомментировать эти строки-он все равно пишет одно и то же. Насколько я в курсе, в новых версиях мелкомягкие компиляторы на int(itoa) ругаются ворнингами, требуя заменить на long. А тут ступор. Собственно основной вопрос: Нормально ли так делать (апгрейдить папку BIN от новых студий)? Я исходил из того, что студия, по существу - оболочка и принципиально ничем не завязана на компиляторах/линкерах (разве что опции компиляции/компоновки выставлять, но для старой VS можно напрямую использовать комп строку внизу и обойти проблему незнания новых ключей). Просветите по этому вопросу. |
|
Создано: 08 марта 2014 11:38 · Личное сообщение · #2 А что мешает обновить всю студию? Лень много ставить, поставь интел компиль. И студия-это не только компилятор, это как минимум ещё пачка хедеров и либ. И хоть они и должны быть написаны более-менее по стандарту, это далеко не всегда так. Скажу более того, на 2010 студии были стандартные хедеры, которые приходилось править руками, ибо в них были ошибки. Так что не удивлюсь, если компилю не понравятся хедеры сильно другой версии. | Сообщение посчитали полезным: TLN |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 08 марта 2014 11:54 · Поправил: ELF_7719116 · Личное сообщение · #3 Archer пишет: А что мешает обновить всю студию? Новая студия есть уже, но хочу попробовать. А для VS 6.0, только Intel С++ compiler 10, но не могу найти, где Так что не удивлюсь, если компилю не понравятся хедеры сильно другой версии. Как-то по дурацки он пишет, что ему не понравилось -поди догадайся что править. |
|
Создано: 08 марта 2014 13:05 · Поправил: reversecode · Личное сообщение · #4 для VS60 можно проапдейтить только компилеры от 7.1, причем их еще патчить надо(я на wasm выкладывал) и тогда можно проапдейтить все хидеры и либы от 7 студия там завязана на pdb, что бы дебажить можно было, и на всякие другие разные опции поэтому просто copy BIN на сработает VC60 -> VC71(VC2003) | Сообщение посчитали полезным: ELF_7719116 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 08 марта 2014 15:17 · Личное сообщение · #5 |
|
Создано: 08 марта 2014 15:25 · Поправил: reversecode · Личное сообщение · #6 я забил на иде, мне отладка не нужна я код и так могу писать в фаре а скомпилить если надо можно заюзать VCToolkitSetup.exe поэтому если хочется сидеть на VS 6.0 IDE и обновить компилер до 7.1(вместе с include + libs - обновлять обязательно там есть привязки некоторых check stack кукисов итд), нужно искать все и патчить Q: почему можно патчить именно 7.1 ? A: потому что это последний компилер который поддерживает два формата pdb, и старый и новый, дальнешие компилеры в 8.0 и выше, уже не поддерживают старый pdb формат, поэтому к IDE 6.0 зауши уже не притянуть ELF_7719116 пишет: искать и качать целую студию чет как-то долго там можно не студию а wdk/ddk уже не помню, главное это поодержка компилером старого формата pdb но опции для патчинга нужно искать по новой |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 08 марта 2014 18:22 · Личное сообщение · #7 Хочу уточнить окончательно: как альтернативу всему этому, можно заюзать Intel C++ компилер. Правда, я не могу найти нигде 10.1 версию, ибо http://software.intel.com/en-us/articles/visual-studio-60-is-not-supported-in-the-110-version/. Ее можно просто установить, и без танцев с бубном также билдить проект по нажатию клавиши?? |
|
Создано: 08 марта 2014 18:50 · Поправил: reversecode · Личное сообщение · #8 интел компилер - не генерит pdb, поэтому отлаживать в студии ты все равно не сможешь - можно использовать для релизового билда что бы была оптимизация подумай и определись за чем ты гонишься и что тебе действительно надо я для себя переходил с vs 6.0 компилера на 7.1 и патчил для того что бы была нормальная поддержка С++, потому что в 6.0 студии компилера она очень слабая интел компилер могу за тебя конечно поискать, мне несложно |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 08 марта 2014 19:59 · Личное сообщение · #9 |
|
Создано: 08 марта 2014 20:13 · Поправил: reversecode · Личное сообщение · #10 какой тогда вообще смысл 6.0 студии? ставь какой нибудь codelite / codeblooks / etc настраивай под него интел компилер и вуаля vs 6.0 + 7.1 компилер нужно использовать когда нужно лучшая поддержка компилятора с++ и хочется красивых удобностей при отладке ввиде отладка по соурс коду, брек поинты по соурс коду, всякие watch переменных итд |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 09 марта 2014 10:38 · Личное сообщение · #11 reversecode Все ништяк Единственный вопрос по Intel C++, есть код: Code:
при компоновке компилер выплевывает ошибку: Code:
ругается он на offset. Собственно как нужно записать, чтоб Intel C++ понял, что это оффсет? зы: Не, я конечно понимаю, что можно через LEA разрулить, но это как-то не true. |
|
Создано: 14 марта 2014 08:54 · Личное сообщение · #12 |
|
Создано: 14 марта 2014 09:48 · Поправил: deniskore · Личное сообщение · #13 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 14 марта 2014 13:26 · Личное сообщение · #14 drone пишет: просто попробуй убрать offset deniskore пишет: Возможно mov dword ptr [] Если убрать offset, то это воспринимается компилятором как обращение непосредственно к объекту, а не присваивание его адреса(смещения), т.е. на выходе код: Code:
что совсем не одно и то же чем: Code:
|
eXeL@B —› Программирование —› Update compiler & linker(папка BIN) для MS VS C++ 6.0 |