我在托管C ++ DLL中有一个函数需要将128位传递回C#。我在C#上发现了很多关于调用非托管 C ++的主题,但关于管理托管调用却没有那么多。
此调用将在紧密循环中发生,可能每天在服务器场中发生数十亿次。
传回比特的最有效方法是什么?
到目前为止,我考虑使用GUID结构作为比特的方便容器,但我不清楚.NET运行时是否会结构化GC,而且我不确定这是否是最有效的机制。
答案 0 :(得分:1)
简单地说,传递C ++ / CLI中定义的以下类型的变量:
public value struct Int128
{
System::Int64 lo;
System::Int64 hi;
};
应该是你能做的最快的。