romaro, мне тоже интересна эта тема. Поиск ответа по этому вопросу привел меня к тому, что в России сейчас нельзя для физ. лиц купить Code Signing сертификат. Самоподписанный сертификат - сейчас это больше минус, чем плюс. Не советую. Я делал самоподписанные сертификаты, итоги отрицательные, если использовать не только в своей компании, где вы можете поместить его в доверенные на каждом ПК, а распространять свой продукт во внешний мир. Самоподписанный сертификат, просто не даст Excel открыть вашу надстройку или dll без добавления его в доверенные. А добавлять на его на свой ПК будет не каждый пользователь.
Chernyshov, что у вас конкретно не получается? В моем ответе ссылка на инструмент, на странице этого инструмента есть описание и видео. Если вам это подходит, там же по ссылке можно перейти и скачать настройку для Excel. Установить ее и пользоватся этим инструментом. На каком этапе у вас возникли проблемы? Все ссылки рабочие
artemkau88 написал: Файл весит больше 2,5гБ. Железо: 4 гБ оперативки и 2-х ядерный процессор (виртуалка). Время работы - 15 минут. Но это без учета операций записи в файл с результатом.
При документированной скорости чтения SSD - 450 Мб/с, 10 ГБ читается за 22,2 сек, что близко к скорости поиска (25,45 сек. с отключенным кешированием - 40 млн.строк, ищем последнюю).
bastepa написал: Может есть способ обновить в win7 "алгоритмы компрессии compressapi.h " ?
Это Win Api. Там же, по ссылке, написано Minimum supported client Windows 8.
Т.е. это вопрос не ко мне, а к Microsoft, почему они не завезли в win7 данные api
Таким образом версия для win7 не сможет открывать упакованные файлы сохранений или зашифрованные данные листа Excel, если в них было сжатие. Штатная версия может читать и сжатые данные и не сжатые, в т.ч. созданные в версии для win7. Т.е. совместимость в одну сторону (штатной версии). Файл пользовательских сохранений можно явно сохранить без сжатия, тогда он откроется и версии win7 и в штатной. Зашифровка ячеек Excel сложнее, здесь алгоритмы сжатия включаются, если сжатый текст меньше не сжатого, т.е. после какого-то количества символов в ячейке. Другими словами короткий текст и формулы скорее всего не будут сжиматься, т.е. смогут расшифровываться в обеих версиях. На длинных текстах, скорее всего версия win7 не сможет расшифровать данные. Длинна данного текста или формулы не тестировалось, нужно смотреть на практике (при какой длине включается сжатие).
На этой конфигурации должны работать две версии (и специальная для win7 и обычная). Лучше использовать обычную, там есть алгоримы компрессии/сжатия данных (меньше размер сохраняемых и зашифрованных данных).
testuser написал: Да уж это просто та штука, которой выстрелили в ногу бейсику, тупой сборщик мусора, но бейсик, видимо на это и не рассчитывался будучи "бейсиком", даже учитывая гениальность его архитекторов..
Бейсик здесь не причем. В любом ЯП есть штатные механизмы выделения и освобождения памяти. Если вы идете своим путем - будьте добры сами контролировать этот функционал (в Си/С+ в такой парадигме получите битые или висячие указатели, утечку памяти и в Шарпе сборщик мусора не поможет). Но за пробы пера плюсую, главное в прод не выводить, здесь полностью согласен с Владимиром (ZVI).
ZVI, Владимир, а если убрать зануление массивов в деструктор класса (VBA) (Class_Terminate())? что быстрее вызывается деструктор класса или очистка всех переменных модуля тестового кода? Будет ли в таком случае ошибка
Надстройка xll x64(64bit) работает на любых ОС, начиная с Office2007 (x64).
Надстройка xll x32(32bit): 1.Старая версия (до 5.0) работает на любых ОС, начиная с win7 (XP не поддерживается), начиная с Office2007 (x32). 2.Более новые версии (выше 5.0) работают на ОС, начиная с win10, начиная с Office2007 (x32)?
Можно предположить, что в xll x 32 добавился функционал (win api?), который не поддерживается в ОС ниже win10? (в версиях выше 5.0 было много изменений и нового функционала) Но странно, что судя по всему xll x64 (содержание xll x64 и x32 одинаковое) работает на win7 ? Кто-то сможет проверить работоспособность последней xll x64 на win7?
Test13. Включено: BedvitXLL.h, Functions, включены lib_cryptopp, команды меню, пользовательские формы, без сервера событий, без InitExcelOLE BedvitXLL32v5.6b_test13.zip
Думаю последнее на сегодня. bastepa, спасибо за тесты!
По-моему, кое-что проясняется. Этот по расчетам не должен запустится. Test4. Включено: BedvitXLL.h, Functions (кроме lib_cryptopp), включен (compressapi.h) BedvitXLL32v5.6b_test4.zip