2 u010046276 u010046276 于 2016.02.25 18:27 提问

C#写一款ip摄像头上位机,用RealPlayWnd.Handle;为啥是无效的句柄 20C

我在用C#做某款小众摄像头的二次开发,写成功过海康产品的上位机,但是这款一直遇到一个问题困扰着我!
给的Demo用的是C++语言,我选择C#开发,在成功调用了初始化函数和登录设备函数后(说明给的dll是对的),调用打开通道Client_OpenChannel(OPEN_INFO *pOpenInfo)函数却一直无法实现。
我是这样写的:
图片说明
一直返回无效句柄的意思。

厂家给的Demo里是这样写的:
    ![图片说明](https://img-ask.csdn.net/upload/201602/25/1456395886_293092.png)
 这个结构的定义

[StructLayoutAttribute(LayoutKind.Sequential)]
public struct tagIPNC_OPEN_INFO
{
public IntPtr hPlayWnd;
public emVideoRes ImageSize;
public emVideoCodecType CodecType;
public emAVStreamType StreamType;//主码流和次码流分辨率相同时,一般录像时使用主码流,预览时采用次码流
public emAVStreamProtocol Protocol;

        public bool bOpenDisplay;//是否打开预览
        public bool bScale;//是否按比例显示画面
        public bool bPlayAudio;//是否播放音频
        public bool bRecvAvData;//是否回调未解码数据
        public bool bRecvDecodedAvData;//是否回调解码数据,未打开预览时,不能回调解码数据

    }

   //打开通道函数的定义
    [DllImport("IPNCSDK.dll", EntryPoint = "Client_OpenChannel", CallingConvention = CallingConvention.Cdecl)]
    public static extern emReturnValue Client_OpenChannel(ref tagIPNC_OPEN_INFO pOpenInfo);

我想问:

1.这个返回的emReturninvalidateHwnd,基本上我确定了是说我赋的窗口控件的句柄不对 info.hPlayWnd = RealPlayWnd.Handle;可我以前的都是这么赋的,不知道为啥不对
2.相关C++到C#的转换我也做了很多回了,基本格式相关转换应该也没问题
3.这是一个小厂商的产品,但某一方面性能很好必须选用,他们之前也没用C#开发过,难道是他们的DLL的问题?隐隐有一种不安,我在执行状态下会出现这种
图片说明
SDK core dumped
这个core dumped是什么意思呢?
联系过厂家他们不管C#的事,这个问题困扰了我半个多月一直找不到端倪,求助大家,感激不尽!!!!

8个回答

devmiao
devmiao   Ds   Rxr 2016.02.27 15:24

打电话,联系下硬件厂商,让他们派几个工程师帮助你。

u010046276
u010046276 这是一家小厂,他们直接已 只用MFC,C#你自己解决,把我回绝了!!
2 年多之前 回复
u010046276
u010046276   2016.02.25 22:13

求助大神,要疯了。。。。

u010046276
u010046276   2016.02.26 17:12

自顶,求大神,要疯了。。。

u010046276
u010046276   2016.02.27 15:21

顶起来。。。。。。。。。

u010046276
u010046276   2016.02.28 09:02

还是没有办法,好烦。。

u010046276
u010046276   2016.02.29 10:36

啊啊啊啊啊啊啊啊啊啊啊啊

u010046276
u010046276   2016.02.29 10:36

啊啊啊啊啊啊啊啊啊啊啊啊

u010046276
u010046276   2016.02.29 10:36

啊啊啊啊啊啊啊啊啊啊啊啊

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C#基于VS2010写的简单串口上位机
用C#语言编写的,基于VS2010软件,写的简单串口上位机,有显示界面,发送界面,保存、读取文本文件功能
”WinForm上位机+OV7670摄像头+STM32+蓝牙“图像采集系统(二)PC-MCU蓝牙通信及WinForm上位机开发
上篇Blog谈了一下stm32驱动ov7670进行图像采集,这一篇谈一下后续的几个步骤: 1、图像处理 因为对图像质量要求不高,而且串口蓝牙通信速度局限于波特率。所以决定只传输灰度图像,简单地用了RGB565三个分量取高四位的均值。将两个像素拼接在一起,放在一个unsigned char变量里,前一像素的4位灰度值放在高四位,后一像素放在低四位。 这样就只需要传输320 * 240 /
OV7670上位机实现
OV7670 是 OV(OmniVision)公司生产的一颗 1/6 寸的 CMOS VGA 图像传感器。该传感器体积小、工作电压低,提供单片 VGA 摄像头和影像处理器的所有功能。通过 SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影像数据。该产品 VGA 图像最高达到 30 帧/秒。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能过程包括伽玛曲线、
STM32串口穿灰度图像,上位机实时显示
STM32 通过采集OV7670摄像头数据 通过DMA串口上传到上位机(C#编写)
用c# 写的上位机程序
用c#中的控件SerialPort写的串口调试,上位机程序,内附串口通信协议,下位机有AVR单片机写成!
C#上位机通过TCP/IP完全控制YAMAHA四轴机器人开发
经过几个月的开发终于完全实现通过上位机C#通过TCP/IP实现YAMAHA 4轴机器人RCX340控制器的完全控制(完全不需要写机器人代码)。 包括:1,点位完全放到上位机,机器人可以通过上位机实现手动操作和点位示教 2,工具制作和保存全部通过上位机 3,Pallet通过上位机定义 4,机器人配合视觉定位 5,运动path完成由上位机根据逻辑制定 6,手臂停止和继续开始 7,效率和机
飞思卡尔智能车摄像头上位机…
原文地址:飞思卡尔智能车摄像头上位机采集程序作者:玲声依旧美              基于飞思卡尔XS128单片机 摄像头采集测试程序     OV7620采集程序说明:摄像头数据口接PA0-PA7;行中断接PT0,场中断接PT1;   S0为单片机RXD,接到串口模块的TXD中,S1为单片机TXD,接到单片机RXD中   波特率默认为9600,用户可自行修改波特率,图像大小为64*50,帧头帧
C#做一个简单的进行串口通信的上位机
C#做一个简单的进行串口通信的上位机 乱世中的单纯 发布于 1年前,共有 10 条评论 1、上位机与下位机         上位机相当于一个软件系统,可以用于接收数据、控制数据。即可以对接收到的数据直接发送操控命令来操作数据。上位机可以接收下位机的信号。下位机是一个控制器,是直接控制设备获取设备状况的计算机。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相
C#绑定句柄无效问题的解决方法
【学习点点滴滴】  心情好复杂。不知道该说啥好。还是先写哈这篇博客吧!      我重装了C# 不过当我在调试一个项目是。却弹出“试图运行项目时出错: 无法启动调试。 C#绑定句柄无效。C#绑定句柄无效”的消息框。好让人郁闷,一开始我还以为是我人C#安装出了问题,或者是项目丢失文件。一时不知措。跟心情一样。哎!  鉴于此我在网上查了查相关错误的信息。原来中招的人还有N多N多。 但然解决
智能家居检测控制-C#编写的上位机软件实现对STM32下位机的控制
这是本人本学期的课程设计,主要是通过上位机发送命令给下位机,下位机再实现对各设备的控制,具体请见附件(包括上位机程序、下位机程序、硬件原理图、报告)。个人觉得非常适合学习硬件的朋友,可以开拓开发思维。毕竟大部分工作是上位机编写以及通信协议设计,对学软件的朋友也有一定的参考价值