Наберитесь терпения, всему свое время, именно над этим я сейчас и работаю, причем не только на Delphi, но часть кода будет сделана на ассеблере, так что будет еще быстрей, чем вы думайте.
Хотя некоторые ограничения самой среды эксель все равно останутся, тут уж ни чего не поделаешь.
__________________
В астрологии Деда Мороза нет
Последний раз редактировалось LordWilex, 19.01.2010 в 05:26.
Там Variant'а очень мало, и то в тех местах, где не подразумеваются сложные вычисления.
К тому же, не поможет, т.к. среда эксель это вам не полноценный компилятор VB, так что данные из ячеек в функцию по любому передаются в варианте, а потом в зависимости от контекста переводятся в тот или иной тип
А вы видели ассемблеровский код для математических функций в современых компиляторах?
На пример, простой синус вычисляется примерно так:
Там очень много избыточного кода.
Хотя, можно сделать то же самое, но гораздо проще, всего в три строчки:
Конечно, для функций которые напрямую вызываются в экселевскую ячейку нет ни какой разницы на чем они написаны, экселевская среда будит их тормозить одинаково сильно
Но я планирую реализовать кое какие вещи, которые будут работать внутри самой DLL'ки и требуют большого количества итераций, на пример генетические алгоритмы, и другие способы оптимизации если руки дойдут, и там будут такие задачи, когда, на пример, нужно за короткое время 1 000 000 раз вычислить юлианскую дату и тут каждый такт процессора будет на счету, так что при всем богатстве выбора другой альтернативы нету
LordWilex, если вы будете делать на Delphi то ассемблерные вставки лучше сделать в виде отдельных функций, тогда быстродействие будет еще лучше
Если ASM код будет в отдельной функции, то параметры будут передаваться через регистры процессора, отсюда и увеличение производительности
Все это вшито в сами ШЭ, нужно только сделать так, чтобы это вызывалось через VB, думаю за минут сделаю, просто не думал, что это кому-нить понадобиться, поэтому и не делал.
Только с компом проблемы решу, пару деньков подожди, а то я ща под линуксом, а тут эксели нету
Кстати, есть же неофициальный порт ШЭ под Java, может его можно как нибудь на C# или J# переделать?, тогда если писать на C#, никаких DLL не нужно будет...
Ну теоретически можно попробовать это сделать, тем более есть конвекторы кода с С на С#, правда нет ни какой гарантии, что преобразование пройдет без ошибок в коде только какой в этом смысл, и чем вас dll не устраивает?
ШЭ распространяются с полностью открытым исходным кодом, и нет ни каких проблем, чтобы использовать его в своих прогах напрямую без всяких DLL
Проблемы возникают, если пишешь на дельфи и не хочешь юзать DLL'ки, но и тут есть куча обходных путей
....или, возможно, я вас не так понял