CaptainFlint

|
Posted: Sun Oct 17, 2010 16:09 Post subject: |
|
|
MVV wrote: | Интересно, что у тебя там используется такого, что 6-я не скомпилит. |
А чёрт его знает, мне лень было разбираться. И так четыре разные Студии подгонял друг под друга, в 2003-й само не скомпилировалось — ну я и забил. Может, и действительно, достаточно названных тобой исправлений, только я от шестой Студии уже практически полностью отказался. Хоть она мне и нравится до сих пор, слишком много накопилось в ней проблем, которые не решаются или решаются с большим напрягом.
MVV wrote: | Ещё можно попробовать в опциях проекта в 10 студии включить инструментальный набор от 9 версии. Но тогда возможно и библиотеки по умолчанию будут от 9-ки, т.е. особо заметной компактности не будет. |
Смысла нет, для меня пока основная среда 2008, в 2010 я только перекомпилировал. А если поставить 9-й тулкит, то она и запустит тот же набор компиляторов-линкеров от 2008-й Студии.
MVV wrote: | И, конечно, есть плагин FileInfo, который позволяет сразу проверить, какие импорты отсутствуют в системе, не останавливаясь на каждой отдельно взятой функции. Но это уже проверять нужно на машине у Avada. |
Так в этом-то и проблема. У меня всё работало нормально, и проверять смысла не было. А версия, скомпилированная в 2008-й Студии работает даже под Win2000, это я проверил в виртуалке. Просто когда перекомпилировал в 2010-й и увидел, что размер файла получился меньше, решил распространять её, а перепроверить не удосужился. Тоже думал, что раз константы прописаны, то всё в порядке должно быть…
MVV wrote: | не думаю, что тебе нужны строки длиннее 1024 символов |
Тут дело не столько в том, нужны или не нужны, сколько в том, что придётся возиться с условной компиляцией. Использовать sprintf везде я не хочу: будут ворнинги. Отключать ворнини не хочу: могу забыть об этой проблеме в другом месте, где строка приходит из Тотала и может иметь произвольную длину, и я из-за отсутствия ворнинга провороню дыру. По-хорошему надо переделать на шаблонный вариант вместо явного указания размера, а потом задефайнить sprintf_s на sprintf для старых Студий, но для этого придётся делать статическую инициализацию вместо new/delete, а пихать два килобайта в стек — не самая лучшая практика (а глобальные переменные недолюбливаю).
MVV wrote: | это неявный BUF_SZ для sprintf |
В каком смысле "неявный"? У самого sprintf нет никаких ограничителей, будет писать, пока строка формата не кончится, а поместилось в буфер или нет, его не волнует. Потому и рекомендуется использование sprintf_s. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|