首页 新闻 搜索 专区 学院

C# 无法封送处理“return value”:无效的托管/非托管类型组合

0
悬赏园豆:10 [已关闭问题] 关闭于 2021-01-13 15:29

C++用OpenCv做打开rtsp链接,并返回rtsp的RGB 信息,C#调用C++,将打开的链接图像显示在窗口,根据需求来获得rgb信息

C++代码


#pragma once
class imgVideoCapture{
	int id;
	VideoCapture cap;
	Mat mat;
	uchar* rgbBytes;
	int byteSize=0;
}


map<id,ImgVideoCapture*>mapVideoCapture;


PROCESSING_API uchar* getVideoCaptureBytes(int id){
   if(mapVideoCapture.count(id)!=0){
	   return mapVideoCapture[id]->rgbBytes;
	}
}

C# 调用这块的东西,获得rgbBytes的内容;

C# 代码

public class RTSPOpt{
	int id;
	//打开视频
	.......
	
	//获得rtsp的rgb数据
	public byte[] GetRGBBytes(){
		return Processing.getVideoCaptureBytes(id);
	}
}

问题:我可以正常打开rtsp的链接显示在窗口中,但是只要调用GetRGBBytes()获取RGB信息,就会有这个问题。怎么解决或者怎么改

echo_lovely的主页 echo_lovely | 菜鸟二级 | 园豆:335
提问于:2021-01-13 14:48
< >
分享
所有回答(1)
0

不知道为啥,C++开发没测试这个东西,他那里也有问题

echo_lovely | 园豆:335 (菜鸟二级) | 2021-01-13 15:29

问题解决了,是C++给C# 不能返回byte[] 只能返回 IntPtr,所以才会有 无法封送处理 的问题

支持(0) 反对(0) echo_lovely | 园豆:335 (菜鸟二级) | 2021-01-14 15:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册