kms писал(а) 18. Мая 2008 :: 02:21:Uzhast писал(а) 18. Мая 2008 :: 01:56:Ну, 9-й Интел тоже не так уж сильно тормозит
Ну... да...
Но вообще, release у меня собирается около минуты, а здесь - 12 сек.
Полный ребилд! В релизе! Минуту!... Детский сад
kms писал(а) 18. Мая 2008 :: 02:21:А попробуй Йоксель собрать в VS, соберется?

(Я MFC и ATL из PSDK брал, остальное - из VS8 или VS9; STLPort - не брал, boost - брал).
Все нормально компилируется - только в паре мест понадобилось добавить typename. И это называется более строгим контролем?

Для линковки захотел Буста... Да ну нафиг. Я еще помню, как пытался перейти на IC10, New PSDK и VS2008. Бррр! kms, если хочешь, переходи. А я пас. По крайней мере, не сейчас - точно. Хочется над проектом работать, а не компиляторы менять. Тем более, что выгод он мне не принесет. Особо заметной строгости при компиляции он не добавляет (пара typename - ерунда). Скорость мне тоже ничего не даст. У меня основной тестовый dll-модуль весит 10Мб (при сборке он на какое-то время вырастает еще в 2-3 раза). И основные тормоза у меня при линковке. Иногда дебаггерная сборка после модификации всего одного cpp-файла происходит больше минуты. На этом фоне твой релизный ребилд за минуту - полная фигня.

И зачем тебе такой гемор ради выигрыша всего в 10-20 секунд на полный ребилд?... Блин, если бы я тебе сказал, сколько у меня все тестовые dll собираются в релизе, тебя бы точно кондрат хватил от таких чисел

Короче, хочешь переходи. Если еще найдешь способ быстро переключать настройку каталогов для Студии или способ поставить две одинаковые студии с разными настройками, то вообще хорошо.
kms писал(а) 18. Мая 2008 :: 02:21:А где такое видел? (правда не помню)
Да любое использование CString в связи с 1С.
Например, прямой доступ к члену CString в объекте CValue. Если там уже есть значение, выделенное 1С, то при записи туда чего-то нового может понадобиться освободить и заново выделить память. Освобождаем память выделенную 1С. Выделяем память через свою CRT. Потом при уничтожении CValue 1С будет освобождать нашу память.
Всякие еще сохранения CValue в CString... Вообще, функций, которые принимают ссылку или указатель на наш объект CString хватает. Это что вспомнилось.
Ага, вот еще что вспомнил - контексты. При создании контекста одинэсина вызывает НАШУ функцию, которая выделяет память. А удаляет контекст она САМА через delete. Правда, вроде бы там в vtable должен быть адрес нашего operator delete...

Хм...
kms писал(а) 18. Мая 2008 :: 02:21:Кстати, я тут подумал - все равно с CDataRow плохо получилось.
Ибо выделяется она поставщиком - а удаляется контролом - неправильный интерфейс.
Надо, видать, самоликвидацию сделать, типа Release(), и заменить мои простые shared_ptr на shared_ptr с ликвидаторами.
Ага, как раз хотел предложить изменить интерфейс провайдера - добавить передачу смартпойнтеров вместо простых указателей.
kms писал(а) 18. Мая 2008 :: 02:21:А, да, посмотрел на new/delete и malloc/calloc/sbheap в VS6/VS9 crt.
Близнецы-братья, только в VS9 оставлены только multithreaded WINHEAP варианты, и некоторые неточности исправлены.
Так что, думаю, все нормально будет, даже с похмелюги и в понедельник.
Будем надеяться.