Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать объект динамически, без использования new 
:(
    Опции темы
xvr
Дата 16.10.2013, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Чупакабро @  16.10.2013,  10:02 Найти цитируемый пост)
мне нужно сделать создание объекта без использования new
как мне еще это выделить, чтобы заметили?

Между new и placement new есть разница. Placement new это вот это -
Код

inline void* operator new(size_t, void* p) {return p;}
Где тут run-time? Не хотите зависить от хидеров VS - напишите его (placement new) прямо у себя в хидере

Цитата(Чупакабро @  16.10.2013,  11:26 Найти цитируемый пост)
error LNK: Cannot find symbol '___CxxFrameHandler3'

Это поддержка exception handling. Отключите его в настройках проекта (и поддержку RTTI тоже)

PM MAIL   Вверх
baldina
Дата 16.10.2013, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



я намекнул ТС'у что проблема решаема (например авторами инсталляторов) без отказа от crt
PM MAIL   Вверх
Чупакабро
Дата 16.10.2013, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: нет
Всего: 4



Пардон, погорячился. Осеннее обострение.
Ну вот если бы сразу сказали, что placement new не требует рантайма... то и флуда было бы на 2 страницы меньше. ))
В общем проверил, работает. Немного увеличился размер экзешника, но не смертельно.
Цитата(baldina @  16.10.2013,  12:22 Найти цитируемый пост)
любой установщик, конечно, использует crt. как же они это делают... 

Как? Таскают рантайм с собой? Линкуются статически? Используют msvcrt.dll, который есть во всех Windows?
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
baldina
Дата 16.10.2013, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(Чупакабро @  16.10.2013,  15:12 Найти цитируемый пост)
Ну вот если бы сразу сказали

читайте больше. лучше - книжки, а не на заборах

Цитата(Чупакабро @  16.10.2013,  15:12 Найти цитируемый пост)
Как?

Цитата(Чупакабро @  16.10.2013,  15:12 Найти цитируемый пост)
Линкуются статически


PM MAIL   Вверх
Чупакабро
Дата 16.10.2013, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: нет
Всего: 4



Цитата(baldina @  16.10.2013,  15:19 Найти цитируемый пост)
читайте больше. лучше - книжки, а не на заборах

Мучаю Шилдта. Но таких тонкостей там не описывается.
Так что, кроме сухой теории полезна практика + гугл + форумы.

Насчет статической линковки - если юзать CRT, то будет трудно уместить экзешник в 64К.
PS. И вроде как в последних студиях msvcrt.lib это просто обвязка для dll...

Это сообщение отредактировал(а) Чупакабро - 16.10.2013, 15:36
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
VSB
Дата 18.10.2013, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.8.2007

Репутация: нет
Всего: 2



Цитата(Чупакабро @  16.10.2013,  15:24 Найти цитируемый пост)
64К

Так вот в чем дело.
Что же вы сразу не сказали?
PM MAIL   Вверх
Чупакабро
Дата 19.10.2013, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: нет
Всего: 4



VSB
Не знаю ))
А это меняет дело?
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
VSB
Дата 19.10.2013, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.8.2007

Репутация: нет
Всего: 2



Ну, вам бы не навязывали использование CRT.
Это же демосцена, если я правильно понимаю?
PM MAIL   Вверх
Чупакабро
Дата 20.10.2013, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: нет
Всего: 4



Цитата(VSB @  19.10.2013,  22:32 Найти цитируемый пост)
Это же демосцена, если я правильно понимаю?

Хуже - игра (правда, пока совсем в зачаточном состоянии).
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.