![]() |
|
Модераторы: bsa |
![]()
|
|
| Чупакабро |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.2.2007 Репутация: нет Всего: 4 |
Вот очень занятная статья на эту тему --------------------
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. |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Чупакабро, т.е Вы решили, что отказавшись от new, Вы отказываетесь от CRT? Я Вам может открою тайну, но прежде чем начнёт исполнятся первая же строчка функции main CRT уже используется на всю катушку.
|
|||
|
||||
| Чупакабро |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.2.2007 Репутация: нет Всего: 4 |
Entry Point находится у меня в программе, я немного подшаманил, если вы об этом)) --------------------
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. |
|||
|
||||
| DarthTon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 1 Всего: 6 |
CRT это не только new/delete. Это ещё и 'scalar deleting destructor', 'vector deleting destructor' и собственно тот самый _vftable. Без CRT не выйдет сделать виртуальное наследование. Если уж так не хочется использовать new то можно так:
|
|||
|
||||
| Чупакабро |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.2.2007 Репутация: нет Всего: 4 |
Да да да! Я так пробовал, см. предыдущую страницу. Работает. --------------------
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. |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
тем не менее это UB
|
|||
|
||||
| Чупакабро |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.2.2007 Репутация: нет Всего: 4 |
--------------------
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. |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
undefined behavior. В C++ нет решения Вашей проблемы без new. Всё что здесь предлагается в качестве решения является некорректным C++ кодом.
|
|||
|
||||
| Чупакабро |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.2.2007 Репутация: нет Всего: 4 |
vinter
ну что ж, начнет глючить - придется отказаться от ООП. Пока работает. --------------------
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. |
|||
|
||||
| DarthTon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 1 Всего: 6 |
Похоже я соврал Это сообщение отредактировал(а) DarthTon - 16.10.2013, 12:06 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Оно может начать глючить так, что Вы проблему месяц будете искать. А если начнёт у клиента, то там вообще будет песня. Отлаживать программу полную UB будет очень весело. А самое то главное, зачем? Неужели сложно писать на чистом C? Коли уж Вы не можете какой-нибудь установщик осилить(WiX, к примеру)
Ну и напоследок. ООП это не классы, ООП возможен и в чистом C. Классы лишь удобная сущность для реализации ООП подхода, не более того. Поэтому наличие классов в программе не делает её ОО, равно как и их отсутствие не говорит об отсутствии ОО подхода при её написании. |
|||
|
||||
| feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Это довольно распространённая проблема))) Если не хотите таскать с собой свой вариант этой dll, то можно попробовать воспользоваться следующим советом:
(для C++ проектов я не пробовал; взято отсюда). -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
зачем огород городить? можно линковать со статическими библиотеками
http://msdn.microsoft.com/ru-ru/library/2kzt1wy3.aspx Добавлено через 2 минуты и 49 секунд любой установщик, конечно, использует crt. как же они это делают... |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Кстати да, если у Вас практически нет вызовов CRT, то размер экзешника при этом увеличится незначительно. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Я тебя не понял. Я имел ввиду распространение CRT вместе с исполняемым файлом. А еще лучше установка MSVC redistributable вместе со своим софтом. Это как раз нормальный путь распространения. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |