.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++