AnsiString и пакеты
Прога получилась простой и работает в консольном режиме. Чтобы облегчить себе жизнь, я использовал AnsiString из VCL для пердачи строковых параметров во многих функциях.
Все вроде замечательно, но при компиляции без пакетов прога наотрез отказалась линковаться, хотя с включеной галочкой все работает прекрасно.
Прогу уже сдали (скомпиляли с пакетами в универе), но мне хотелось бы понять почему она без пакетов то не линковалась?
но мне хотелось бы понять почему она без пакетов то не линковалась?
Похвальный интерес.
Как я понял из того топика, откомпилировать мою программу без пакетов нельзя и нужно таскать за собой билдеровские dll, чтоб она работала на всех компах.
А вот ХЗ, как реализовано это у вас в Билдере. Я подобное только с Дельфи проделывал. Там все однозначно. И предложенный вариант с ручной инициализацией менеджера памяти вполне работоспособен.
Хорошо, спасибо и за это.:)
Чтоб dll не таскать с собой делается это просто (правда ехе возрастает в несколько раз где-то если до компоновки он был 25 кб - то после будет 450-460кб)
Вот собсно что тебе нужно:
1.Project->Options...
2.На вкладке "Compiler" нажимаешь кнопочку Release
3.На вкладке Linker убираешь галочку с "Use dynamic RTL"
4.На вкладке "Packages" убираешь галочку с "Build with runtime packages"
5. Нажимаешь "OK" и компилируешь! ВСЕ!
Теперь dll таскать с собой не нужно!
Чтоб dll не таскать с собой делается это просто (правда ехе возрастает в несколько раз где-то если до компоновки он был 25 кб - то после будет 450-460кб)
Вот собсно что тебе нужно:
1.Project->Options...
2.На вкладке "Compiler" нажимаешь кнопочку Release
3.На вкладке Linker убираешь галочку с "Use dynamic RTL"
4.На вкладке "Packages" убираешь галочку с "Build with runtime packages"
5. Нажимаешь "OK" и компилируешь! ВСЕ!
Теперь dll таскать с собой не нужно!
Все эти настройки мне прекрасно знакомы!
Я же выше пасал, что прога БЕЗ ПАКЕТОВ НЕ ЛИНКУЕТСЯ!!! :!!!:
Я же выше пасал, что прога БЕЗ ПАКЕТОВ НЕ ЛИНКУЕТСЯ!!! :!!!:
Стоп, как это не линкуется? Ошибки в студию!
Стоп, как это не линкуется? Ошибки в студию!
С пакетами - линковалась, а без пакетов - нет (что в шестом, что в пятом билдере одинаково).
Единственные хедеры что я использовал: iostream.h и vcl.h может для использования AnsiString в консоли еще чего надо было?
К сожалению исходник этого проекта уже утерян.. :(
К сожалению исходник этого проекта уже утерян.. :(
Флудеры... (c) Лохматый
Флудеры... (c) Лохматый
Просто хочу разобраться :)
Я нашел свой исходник, прикрепляю его к ответу.
Еще раз с ним поковырявшись я выяснил что:
1) Баг с линковкой (при компилляции без пакетов) возникает толко когда cpp-файл открывается двойным щелчком и проект создается по умолчанию. Если же создать проект мастером(с указанием vcl), то линковка проходит успешно (со всеми настройками типа : релиз, без пакетов,без dynamic RTL)
2) полученный EXE запускается и сразу выдает "Access violation at address...". Этот баг пропадает если подключить dynamic RTL(тогда прога работает нормально).
Как с этим бороться?