我写了一个ActiveX在测试容器里测试(点上面的按钮)没什么问题
如要我放网页里点上面的按钮 有下面的错0x00000000  指令引用的 0x00000000 内存 内存不能为  Read  要终止程序这里为什么呢 那位能说个大概为什么吗 ?

解决方案 »

  1.   

    调试:
    先打开IE
    debug--attach to process选择IE。
    打开加载此组件的页面。
      

  2.   

    楼上还在吗  我在这个测试容器里测试过了可现在 以运行 就到了测试容器里去了 
    你什么办法  可以回到以前的状态可以选择 process 吗 
      

  3.   

    工程--属性-debugging-command,将其清除。
      

  4.   

    IE的问题? 先多打印一些调试信息等,不加在你的ActiveX,应该不会引起IE出问题,还是应该多定位一下你自己的代码
      

  5.   

    定位到了 
    ConnectHandle=PL_Connect(/*(char   *)(LPCTSTR)Ip*/ "192.168.0.62",/*Port*/8018);PL_Connect(char * a,char b)
    这个函数里别人的DLL加载来的 
    在测试容器里也没问题 
    到了IE就  哎 不好找啊
      

  6.   

    跟到 PL_Connect 这个里面看,用别人的DLL代码来跟踪一下...
      

  7.   

    哎 调试到 04522CCF  call  dword ptr [PL_Connect (45354E4h)]   出现上面的错 不好搞啊
      

  8.   


    你看看传给PL_Connect的参数 ip, port是什么值
      

  9.   

    看是否进入 PL_Connect 这个函数...
      

  10.   

    就是一个CString 串 和一个 int 
    ip "192.168.0.62"
    port=4000
      

  11.   

    怎么调试啊 只能找那写DLL的人了 
      

  12.   

    你要问一下写DLL的人,你的调用的方法是否正确,传递的参数是否正确,可以要他帮你定位这个函数PL_Connect具体哪里出错了
      

  13.   


    void Form::Play(CString ip,int port,CString filename,int cls)
    {
    Ip=ip;
    Port=port;
    FileName=filename;
    Cls=cls;

    //---------------
    pWnd=GetDlgItem(IDC_ANIMATE1);//得到预示窗口指针 switch(Cls)
    {
    case 1:
    {
    ConnectHandle=PL_Connect((char   *)(LPCTSTR)Ip,Port); CString abc;
    abc.Format("%d",ConnectHandle);
    MessageBoxA(abc);
    ViewHandle=PL_OpenView((int)pWnd->m_hWnd);
    PL_PlayVideo( ConnectHandle,ViewHandle);
     }break;
    case 2:
    {
            if(!IsPause)
    {
    ViewHandle=PL_OpenView((int)pWnd->m_hWnd); UpdateData(TRUE);   
    AVIInitHandle=PL_AVIRead_Init((char   *)(LPCTSTR)FileName); } PL_AVIRead_Play(AVIInitHandle,ViewHandle);
    if(IsPause)
    {
    PL_AVIRead_GotoTime(AVIInitHandle,ViewHandle,AdwGotoTime*1000);
    IsPause=false;
    }
     }break;
    case 3:
    { MV_InitPlayer();
    g_nHandle[2] = MV_OpenPlayer( (int)pWnd->m_hWnd); //AhWnd nHandles[2] = MC_OpenClient( (char   *)(LPCTSTR)Ip,Port);
    MC_InitfCallBack( nHandles[2] ,(MFAudioCallBack)AVIAudioWriter,\
    (MFVideoCallBack)AVIVideoWriter ,  \
    (MFMediaInfoCallBack)AVIMediaInfoWriter);
    MC_Start(nHandles[2]);
    Sleep(100);
    //AVIInitHandle=PL_AVIRead_Init((char   *)(LPCTSTR)m_FileName);
    MC_Play(nHandles[2] , (char   *)(LPCTSTR)FileName);
     }break;
    }}