转换系统:: Uint ^到无符号长

时间:2011-10-28 06:58:42

标签: c++-cli

我有一个函数,它将指针值作为我的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

更正确

2 个答案:

答案 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)