![]() |
|
![]() ![]() ![]() |
|
Riply |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
Здравствуйте !
Попробовала сделать так: В Builder выбираем File --> New --> VCL Forms Application. Выбрасываем из проекта Unit1 и res. В оставшемся Project1 чуть меняем код на:
Теперь пытаемся тоже проделать с консольным проектом: Выбираем File --> New --> Other --> Console Application Опять чуть меняем код на:
И нам выдаются следующие ошибки: [Linker Error] Error: Unresolved external 'System::__linkproc__ __fastcall LStrClr(void *)' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\DEBUG\VCLE.LIB|dstring [Linker Error] Error: Unresolved external '__fastcall Sysutils::IntToStr(int)' referenced from E:\DELETE FILES\CONSOL\DEBUG_BUILD\UNIT1.OBJ [Linker Error] Error: Unresolved external 'System::__linkproc__ __fastcall LStrFromPChar(System::AnsiString&, char *)' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\DEBUG\VCLE.LIB|dstring [Linker Error] Error: Unresolved external 'System::__linkproc__ __fastcall LStrCmp()' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\DEBUG\VCLE.LIB|dstring Объясните мне, пожалуйста, в чем разница и как консольный проект научить принимать, например, sysutils.hpp без ругани ![]() |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
означает что есть вызов функции(класса) у которого нет тела. В вашем случае надо добавить нужные библиотеки к проекту. |
|||
|
||||
ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Разница в том, что эта галка для VCL-приложений стоит автоматом... ![]() -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
Спасибо всем !
А ведь ни за что бы сама не догадалась ![]() |
|||
|
||||
Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
А как можно аналогичное проделать "вручную" ? Или это довольно сложно ? P.S. На самом деле мне нужен не sysutils.hpp, а system.hpp Хочу поробовать "достать" из него MemoryManagerEx и сопутствующие ф-ии. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
Riply, может стоит воспользоваться Win32API напрямую?
Кстати, этот MemoryManagerEx упоминается только на этом форуме - больше нигде гугл не нашел. Может это неспроста? ![]() Это сообщение отредактировал(а) bsa - 24.6.2008, 10:26 |
|||
|
||||
ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Что значит "вручную"? Вроде бы и так ручнее некуда
![]() Насчет MemoryManagerEx - соглашусь с bsa, не понимаю, зачем этот геморрой и откуда он взялся ![]() -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
Riply |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
Может потому что искал именно MemoryManagerEx ? На запрос TMemoryManagerEx что-то выдает ![]() Не поняла, что имеется ввиду ? Я то просто хотела попробовать использовать вкусности от Borland-овского менеджера памяти в Builder`е ![]() Добавлено через 3 минуты и 38 секунд
Из Delphi ![]() |
||||
|
|||||
ama_kid |
|
||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
![]() -------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
Спасибо. Попробую. А ее (вкусности) в Builder`е может и не быть. Я ведь в С++, сейчас нахожусь на уровне "обучения ставить точку с запятой перед else", что мне дается с большим трудом, после Delphi ![]() С чего-то же надо было начинать изучать язык. Вот я и решила начать с различных способов работы с памятью, ибо без нее (памяти) никуда ![]() |
|||
|
||||
Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
Только, IMHO, надо чуть чуть не так.
Вроде работает. Теперь можно попробовать сравнить с "настоящими" GetMem, AllocMem... e.t.c. ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
Riply, кошмар. Зачем такие сложности?
чем тебя malloc/calloc/free или new/delete не устраивают? Я уж не говорю про такие вкусности C++, как стандартные контейнеры (string, vector, list, set, map и пр.). Твой код с их использованием можно написать так:
Это сообщение отредактировал(а) bsa - 24.6.2008, 12:24 |
|||
|
||||
Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
||||
|
||||
bsa |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
Riply, вот есть типичная тривиальная задача - выделить память под N элементов типа int. N на этапе компиляции неизвестна.
Как мы делаем в стандартном Си:
Как мы делаем под C++:
Теперь тоже самое, но с использованием вектора:
Все эти AllocMem'ы и пр. пришли из дельфи, который не имеет ничего подобного (если не ошибаюсь). Ну и зачем спрашивается пытаться заставить себя научиться работать с тем, что как минимум неудобно и небезопасно, а как максимум еще и медленней работает. Это сообщение отредактировал(а) bsa - 24.6.2008, 13:22 |
||||||
|
|||||||
Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: нет Всего: 32 |
Одна из причин, почему все это затеяно - подтверждение или опровержение этой фразы ![]() P.S. Пока нет доказательств, будем считать ее спорной ![]() Добавлено через 4 минуты и 2 секунды Ну это кому как. Я привыкла убирать за собой и не вижу в этом неудобств. Да и плюсом считаю возможность чистить тогда, когда мне надо, а не когда соизволит компилятор ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |