OSA913,
Цитата |
---|
OSA913 написал: логично будет написать весь проект на этом языке т.к. программа на этом языке должна в разы быстрей работать чем на vba имхо. |
так и есть, не надумали еще полностью перейти на .Net'овские языки как СИ или VB. Или все же, вам нужен excel?
Как я вижу картину, если использовать COM в виде подключаемой dll:
представьте, что у вас есть такой макрос на vba:
Код |
---|
Sub J()
Dim result As Long
result = MathTask(5, 2)
End Sub
Private Function MathTask(ByVal i As Integer, ByVal J As Integer) As Long
MathTask = i * J ^ 2
End Function
|
Вроде все просто и понятно, используется функция для вычисления и все, кому надо, могут ее увидеть.
Теперь перенесем вашу функцию в dll'ку на C++, подключим к эксель.
В итоге, у вас будет только такой код:
Код |
---|
Sub J()
Dim native As New MyDLL, result As Long
result = native(5, 2)
End Sub
|
Где MyDLL, это ваша подключенная dll'ка, мы передаем ей параметры, в ее теле обрабатывается функция и возвращает результат переменной result.
Т.е. основной код выполнения никто не увидит.
p.s. C++ это нативный код, машинный если проще. Просто так каким либо редактором не прочитать, а если еще скормить обфускатору, то и вообще сложно что либо выудить будет. И скорость обработки куда быстрее будет за счет многопоточности(если ее использовать).
Старался объяснить проще, вам решать.