C# .NET CLR内部调用
是否有方法托管.NET CLR运行时并注册MethodImplOptions.InternalCall函数?(这不是一个关于P/Invoke的话题)C# .NET CLR内部调用,c#,.net,clr,C#,.net,Clr,是否有方法托管.NET CLR运行时并注册MethodImplOptions.InternalCall函数?(这不是一个关于P/Invoke的话题)是你最好的选择,但不能保证这一点。这似乎是C++/CLI的一项特定任务。SSCLI代码(特别是clr\src\vm\ecall.cpp)表明,没有办法注册内部调用方法,因为关键的gECClasses表是硬编码的。这里的“偏离标记”到底是什么?如果无法使用COM api使InternalCall工作,那么P/Invoke不是一个选项,那么C++/CLI
是你最好的选择,但不能保证这一点。这似乎是C++/CLI的一项特定任务。
SSCLI代码(特别是clr\src\vm\ecall.cpp)表明,没有办法注册内部调用
方法,因为关键的gECClasses
表是硬编码的。这里的“偏离标记”到底是什么?如果无法使用COM api使InternalCall工作,那么P/Invoke不是一个选项,那么C++/CLI是最好(唯一?)的托管方式->非托管方式。InternalCall低于CLI级别,因此C++/CLI。jameszhao的问题非常明确,他想要什么。实际的API与共享源代码版本不同吗?确实不同,但如何不同?。。我只能建议一方面用IDS-和公共符号来启动,另一方面,SSCLI代码跳入tail的行为。调用
,可以确认在这两种情况下SSCLI与实际机器代码之间存在精确的对应关系。据我所见,大部分SSCLI在CLR中很常见,只有像GC和codegen这样敏感的东西明显不同,而其他东西则被忽略了。@Earwicker。我需要避免P/invoke的封送处理成本。在这种情况下,我可能会使用C++/CLI。另外,我想知道是否可以在VM中创建一些附加的MSIL功能。