C++/CLI-如何封送";无符号整数&&引用;? 我有一组C++函数,需要用托管C++类来包装。 某些非托管函数通过引用返回无符号int值。例如:
int func(…,无符号int&val,…) 我有两个问题: 我希望我的包装C++方法能把“VAL”暴露为非符号int(或者“REF”或“OUT”)这样的原生函数。我应该用什么类型的?“unsigned int%”,“uintpttr^%”,还有别的吗?包装法是什么样的C++/CLI-如何封送";无符号整数&&引用;? 我有一组C++函数,需要用托管C++类来包装。 某些非托管函数通过引用返回无符号int值。例如:,c++,.net,frameworks,marshalling,managed,C++,.net,Frameworks,Marshalling,Managed,int func(…,无符号int&val,…) 我有两个问题: 我希望我的包装C++方法能把“VAL”暴露为非符号int(或者“REF”或“OUT”)这样的原生函数。我应该用什么类型的?“unsigned int%”,“uintpttr^%”,还有别的吗?包装法是什么样的 > p>在托管C++包装方法中,我应该如何封送这个参数? 我尝试了以下多种组合: 封送上下文ctx; 返回origFunc(…,ctx.marshal_as(val),…) 但是我得到编译器错误,抱怨不支持的转换。只有C+
封送上下文ctx;
返回origFunc(…,ctx.marshal_as(val),…)代码>
<>但是我得到编译器错误,抱怨不支持的转换。只有C++正确知道引用是什么。基本上,引用是C++的东西——没有其他语言知道它们是什么。相反,您应该传递值或指针。其次,对于如何在引擎盖下实现引用,没有任何规范。引用参数非常类似于不可为空的指针。@PaulMck我可以用具有DlIImport属性的C#包装相同的函数。在这种情况下,对于本机方法和包装方法,我将参数描述为ref uint val
。