Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++/CLI-如何封送";无符号整数&&引用;? 我有一组C++函数,需要用托管C++类来包装。 某些非托管函数通过引用返回无符号int值。例如:_C++_.net_Frameworks_Marshalling_Managed - Fatal编程技术网

C++/CLI-如何封送";无符号整数&&引用;? 我有一组C++函数,需要用托管C++类来包装。 某些非托管函数通过引用返回无符号int值。例如:

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+

int func(…,无符号int&val,…)

我有两个问题:

我希望我的包装C++方法能把“VAL”暴露为非符号int(或者“REF”或“OUT”)这样的原生函数。我应该用什么类型的?“unsigned int%”,“uintpttr^%”,还有别的吗?包装法是什么样的

> p>在托管C++包装方法中,我应该如何封送这个参数? 我尝试了以下多种组合:

封送上下文ctx;
返回origFunc(…,ctx.marshal_as(val),…)


<>但是我得到编译器错误,抱怨不支持的转换。

只有C++正确知道引用是什么。基本上,引用是C++的东西——没有其他语言知道它们是什么。相反,您应该传递值或指针。其次,对于如何在引擎盖下实现引用,没有任何规范。引用参数非常类似于不可为空的指针。@PaulMck我可以用具有DlIImport属性的C#包装相同的函数。在这种情况下,对于本机方法和包装方法,我将参数描述为
ref uint val