我现在有一个这样的视频控件,是一个客户端,是利用LIVE555库 基于rtsp协议与服务器通信(服务器就是一个网络摄像机),我这个控件就只是做三件事情,一个是接受数据,再就是解码,三就是调用directshow显示视频,现在我将此控件插到对话框中,将控件的属性设为;rtsp://192.168.1.200:554/cms 然后运行程序,控件上就会显示视频,一切正常,但是当我插入两个或者多个时,程序就会马上死掉,不知道为什么,求高人指点?

解决方案 »

  1.   

    我之前也有写个一个视频控件,调用厂家的SDK来实时播放,也是多画面显示有问题,后来我把全局对象或方法都改为控件对象的成员对象和方法,这样就可以了,你也可以试一试。
      

  2.   

       我做了一个测试,就是属性为空的话(就是不让它连接到服务器的话),插入多少个都没有问题,我想问题应该是出在通信方面,可是我对live555库中rtsp协议不是很熟悉,求高人指点下这方面的知识,他的SOCK都封装到哪些类中去了 ,找了半天没找到
      

  3.   


    这个倒是个投机的办法。改个dll名字。再把编译时的UUID换一下。其实就相当于2个COM了。而IE进行实例化也会当成两个COM加载。呵呵。
      

  4.   

     ActiveX 控件 转DLL有什么好的方法吗?
    可是我现在感觉 不是控件加载的时候 没有问题 感觉是通信的时候出了问题的啊 ,
      

  5.   

    LZ没有调试能力吗。打log最土的办法。
    有个检查问题的土办法。在每个函数入口处打一个LOG比如
    char szBuf[1024] = {0};
    sprintf(szBuf,"%s IN",__FUNCTION__);
    log(szBuf);出函数的地方
    char szBuf[1024] = {0};
    sprintf(szBuf,"%s OUT",__FUNCTION__);
    log(szBuf);这样通过log就能看到走到哪个函数了。内联和一些小功能的函数不要加。不然log会太多。
      

  6.   

      这个控件的通信过程 全是调用了 live555静态库里面的函数,我现在就是对这个库怎么封装SOCK不熟悉啊,我现在基本可以确定是通信有问题了,但是库里面得东西怎么改啊  还是个静态库  
      

  7.   


    VS自带功能安装目录有个guidgen.exe 用他生成一个新的UUID。
    找到你要准备替换的那个UUID全文搜索全部替换。我没用过啊。你自己搞搞看。
    那个UUID只是一个标示而已。