В проекте используется STL: vector, deque и строки std::wstring. Проект в MSVS 2010. Проект DLL Multi-threaded DLL (/MD). Enable C++ Exceptions - No Возможно ли выпилить из этого проекта всю CRT?
rpy3uH Думаю это можно сделать, если заменить аллокаторы-компораторы на свои собственные. Вроде как шаблонные параметры это все позволяют.
не знаю. может заглушки где-нибудь надыбать? Ставлю "Ignore All Default Libraries" - Yes всего 15 штук, всего лишь. надыбать бы аналоги для них....
вроде есть в ntdll.dll... отключить стековые куки в настройках проекта... написать свои через HeapAlloc/HeapFree из kernel32.dll или через malloc/free из msvcrt.dll... отключить rtti... как-то реализовывать руками))) можно посмотреть в исходниках STL... "спасибо, кэп"?))
new, delete, check_cookie и memmove я и так знал остальные проблема. проще свой vector написать покопался в исходниках выяснил что _Orphan_all отвечает за удаление элементов
Короче выпили я CRT из программы. Классы перепилил деструкторы вручную вызываю, все конструкторы запихал в отдельный, обычный метод. но ошибка всё равно выходит при линковке Несколько раз перелопатил код но ни одного даже намёка на delete не нашёл Написал такой оператор delete, в выводом MessageBox Код (Text): void __cdecl operator delete(void* p) { MessageBoxA(0,"123123","1123",0); AuxFreeMemory(p); } и что же вы думаете? MessageBox ни разу не вышел. В чём может быть проблема?
Может временные объекты, а просто место где они создаются редко исполняется.(т.е. банально до этого место не дошло) а чем вам статическая линоквка не устраивает? вроде как зависимости от сторонней библиотеки уже не будет)
тестирую пробую.... ни разу не вылезло это сообщение мне нужна компактность. ну ты понял что я пишу....
ну это как раз таки плохо, так как видимо у тебя выделенные на куче объекты не уничтожаются, происходит утечка памяти... скорее всего это происходит из-за: зачем это делать, если достаточно перегрузить new и delete операторы и конструкторы с деструкторами будут автоматически вызываться...
проверяю, тестирую..... ну там не суть, у меня примерно так: Код (Text): myClass::myClass() {//основной конструктор Create(); } myClass::Create() { //здесь весь код. }
нееее, IDA надо качать устанавливать. у меня и так этот визуал 2010 занял почти весь системный раздел. я без трололо
вот время тестирования нашёл кучу мелких ошибок в программе, но где вызывается delete так и не нашёл. такие дела
rpy3uH как-то давно мне помогал профилировщик памяти от компуваре, не вызывался из-за кода с течкой оффтоп сейчас прибежит Asterix и предъявит за копирайт..
у меня программа, что-то типа мини сервака работающего в сети. так вот, за минуту она может создать/удалить до 1000 мелких объектов, после получаса работы никаких утечек...