RT。不仅适用于VB.Net也适用于C#。。。我实在蛋疼了
自从前天尝试反编JIT编译出的机器码我就玩上瘾了。。。
这个是用c写了一个迷你库挂在外面调用实现的,另外用.net进行一些封装。大体上是先新建一个委托,然后把委托所在的内存地址查出来,然后用malloc申请一块内存把委托拷贝进去,改掉跳转的机器码,使其重新指向原来所指的地方。。。要调用就把内存地址传给c,转成函数指针再调用。之所以用malloc是因为.net会GC,一旦GC委托就不知道飞哪去了。。。因此你还需要用Free释放避免内存泄漏。
目前仅支持调用没有参数的Sub,但是操作Sub外部的变量是允许的。
支持无返回值和参数的Lambda表达式。。。(我没试过有返回值或参数会怎么样)
这是个exe文件。打开像这样:

按下button会弹出来一个Msgbox,里面写一个数字。这其实是个稳定性测试:

使用方法也在图里了。。。只要三步就可以使用。。。
点一下创建5000次,我创建了50万次依然正常。
我个人觉得比委托方便。。。使用起来代码稍微少一点。这个还有一个用途是释放机器码到内存然后调用。你可以把机器码存进Byte数组里!
如果不喜欢就把它当作一个玩具吧。。。。毕竟这完全有悖.Net的思想。我作死
下载:
http://pan.baidu.com/share/link?shareid=506558&uk=3423845838

这个是用c写了一个迷你库挂在外面调用实现的,另外用.net进行一些封装。大体上是先新建一个委托,然后把委托所在的内存地址查出来,然后用malloc申请一块内存把委托拷贝进去,改掉跳转的机器码,使其重新指向原来所指的地方。。。要调用就把内存地址传给c,转成函数指针再调用。之所以用malloc是因为.net会GC,一旦GC委托就不知道飞哪去了。。。因此你还需要用Free释放避免内存泄漏。
目前仅支持调用没有参数的Sub,但是操作Sub外部的变量是允许的。
支持无返回值和参数的Lambda表达式。。。(我没试过有返回值或参数会怎么样)
这是个exe文件。打开像这样:

按下button会弹出来一个Msgbox,里面写一个数字。这其实是个稳定性测试:

使用方法也在图里了。。。只要三步就可以使用。。。
点一下创建5000次,我创建了50万次依然正常。
我个人觉得比委托方便。。。使用起来代码稍微少一点。这个还有一个用途是释放机器码到内存然后调用。你可以把机器码存进Byte数组里!
如果不喜欢就把它当作一个玩具吧。。。。毕竟这完全有悖.Net的思想。我作死

下载:
http://pan.baidu.com/share/link?shareid=506558&uk=3423845838
