编译通过了,但运行debug版本时,出现debug assertion failed!
File:afxwin2.inl
Line:713
713行是什么问题?release版本就没问题

解决方案 »

  1.   

    release下ASSERT不会执行,当然没问题
    你可以打开afxwin2.inl文件看看713的代码
      

  2.   

    恩~
    看看那个地方用到了assert~~
    实际上还是建议你单步执行看看什么地方出错了~~~
      

  3.   

    常见的单步跟踪在可疑处F9,然后F5执行,可按F11进入一条语句的跟踪
      

  4.   

    m_cap.EnumDevices (m_ListCtrl);
    m_ListCtrl.SetCurSel(0);
    上面两名放在OnInitDialog里
    说m_ListCtrl.SetCurSel(0)有问题
      

  5.   

    是不是m_listCtrl里面没有内容.你试一下.
    因为有一处为假,所以系统才会通过ASSERT把错误信息提示出来 ,在Release,系统的ASSERT不执行,所以你看不到错误,并不是说没错误.
      

  6.   

    int CCaptureVideo::EnumDevices(HWND hList)
    {

    if (!hList)
              return -1;
    int id = 0;
    //枚举视频扑捉设备
    ICreateDevEnum *pCreateDevEnum;
    HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,IID_ICreateDevEnum, (void**)&pCreateDevEnum);

    if (hr != NOERROR)return -1;
    CComPtr<IEnumMoniker> pEm;
    hr = pCreateDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory,&pEm, 0);
    if (hr != NOERROR)return -1;
    pEm->Reset();
    ULONG cFetched;
    IMoniker *pM;
    while(hr = pEm->Next(1, &pM, &cFetched), hr==S_OK)
    {
    IPropertyBag *pBag;
    hr = pM->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag);
    if(SUCCEEDED(hr)) 
    {
    VARIANT var;
    var.vt = VT_BSTR;
    hr = pBag->Read(L"FriendlyName", &var, NULL);
    if (hr == NOERROR) 
    {
    TCHAR str[2048]; 
    id++;
    WideCharToMultiByte(CP_ACP,0,var.bstrVal, -1, str, 2048, NULL, NULL);
    ::SendMessage(hList, CB_ADDSTRING, 0,(LPARAM)str);
    SysFreeString(var.bstrVal);
    }
    pBag->Release();
    }
    pM->Release();
    } return id;}
    上面是m_cap.EnumDevices (m_ListCtrl);的原形,我现在没有摄像头,所以没值,但我addstring了一个值也没用
      

  7.   

    到你的vc目录下 看你 你可以打开afxwin2.inl文件看看713的代码
      

  8.   

    肯定是代码的问题
    CListContrl那样写不对不信,你把那行给屏蔽了
      

  9.   

    找到这个文件File:afxwin2.inl
    使用uedit打开看看,第713行的,assert警告什么东西?
    说明:assert在debug版本下才出现的,rel下不执行该操做
      

  10.   

    File:afxwin2.inl
    Line:713
    这行是哪儿出错了
      

  11.   

    { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETCURSEL, nSelect, 0); }