- функция должна быть статической. Надо поставить аттрибут для её экспорта:
- Код: Выделить всё
Imports System.Runtime.InteropServices
Public Module Exported
<System.Reflection.Obfuscation(Feature:="DllExport")>
Public Function Add(ByVal X As Integer, ByVal Y As Integer) As Integer
Return X + Y
End Function
End Module
- Скомпилировать.
- Дизассемблировать в il-код, найти там функцию:
- Код: Выделить всё
.method public static int32 Add(int32 X,
int32 Y) cil managed
{
- Добавить команду экспорта:
- Код: Выделить всё
.method public static int32 Add(int32 X,
int32 Y) cil managed
{
.export [1] as Add
- Скомпилировать получившийся il-код.
Описание этого метода можно найти в разных источниках. И это действительно работает. В некоторых не указаны шаги 3 - 5, но без них не работает.
А теперь вопрос. Можно ли это сделать как-то без кучи ручной работы? Конечно, можно сделать программу, которая будет её выполнять за меня, но хочется чего-нибудь нормального, а то метод всё-таки подозрительный...