.net 程序aot后,就是原生exe程序了, 如果输出的dll类库,则可以作为原生dll供其它语言调用的, 只需要在需要导出的函数(需要是静态函数)打上UnmanagedCallersOnly标记即可,示例如下:
[UnmanagedCallersOnly(EntryPoint = "OutPut")]
public static int OutPut()
{
return 1;
}
导出后,可以作为原生的dll调用了,其它语言就可以非常方便的调用.net语言编写的函数了。 在.net程序中,也可以通过pinvoke的方式调用。
[DllImport("AOTDLL.dll")]
public static extern int OutPut();
更多示例可以参考这个文章:Using .NET 7 Native AOT to call .NET functionality in C++