我有一个函数,它将指针值作为我的C静态库中的参数。 现在我正在编写C / CLI包装器,而后者将用于C#代码。
long function_C( PULONG pulsize, PULONG pulcount );
包装函数C ++ / CLI
long function_Managed( System::Uint^ size, System::Uint^ pulcount );
我从function_Managed调用function_C函数。现在我面临转换System :: Uint ^ PULONG的问题。
我的查询是
1.这是正确的吗。
2.如果这比将System :: Uint ^转换为PULONG
答案 0 :(得分:1)
有关详细信息,请参阅here。总结如下:
unsigned int k = *safe_cast<System::UInt^>(x);
答案 1 :(得分:0)
long function_C(PULONG pulsize, PULONG pulcount);
int function_Managed(unsigned% size, unsigned% count)
{
unsigned long lsize = size, lcount = count;
long const ret = function_C(&lsize, &lcount);
size = lsize, count = lcount;
return ret;
}
对于C#代码,function_Managed
将具有此签名:
int function_Managed(ref uint size, ref uint count)