我已经审查了ECMA 335,我只发现了对.export关键字的引用,这个关键字看起来很有前途,但文档很少.我在StackOverflow中发现了类似的问题,在C#中这样做.但是,迄今为止,还没有任何一个有用的东西.
底线是:我有一个CIL DLL,我想从一个本机C应用程序调用其一些静态方法.
在较新版本的ILAsm中,您可以简单地做:
.method public static void Foo () { .export [1] // code ... }
这将导出表中的索引1中的Foo.导出序数应该是唯一的和顺序的.
在旧版本中,您必须做:
.data vt = int32 (0) [n] .vtfixup [n] int32 fromunmanaged at vt .method public static void Foo () { .vtentry 1:1 .export [1] // code ... }
(“n”是您想要的出口数量.)
.vtentry表示哪个vtable:slot存储方法(表ID是顺序的,因此取决于声明顺序.)
较新的ILAsms会为您完成所有这些工作,前提是您不要将导出表用于其他任何操作.
请注意,这一切都是非常不可取的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。