none
求教从VC6.0转换到VS2010出现的一个关于vector问题 RRS feed

  • 问题

  • 添加一个vector容器,在vc6.0是好好的,但是转到vs2010编译,就报出下面的错误提示了

    error C2440: “初始化”: 无法从“int”转换为“std::_Vector_iterator<_Myvec>”

    双击后指定的错误语句是vector<CString>::iterator it=0;

    这个要如何更改?

    2012年1月30日 13:09

答案

  • vector<CString>::iterator it;直接这样就可以了,用的时候再赋值给它。比如

    vector<CString> vec;

    ....

    vector<CString>::iterator it;

    for(it = vec.begin(); it != vec.end(); it++)
    {
      ....
    }


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 Rob Pan 2012年2月6日 9:35
    2012年1月30日 13:14
    版主
  • Cannot find or open the PDB file

    这一句是正常的,因为那些系统的DLL你没有下载PDB文件,所以调试的时候,会提示你找不到符号文件。

    这个初学着一般可以先不考虑

     

    至于Ctrl+F5就没有了,是因为你原来按的是F5,这样是调试,会显示出一些调试辅助信息

    但是Ctrl+F5是直接运行,这些信息就不显示了,或者说没有生成这些调试用的辅助信息。

    • 已标记为答案 Rob Pan 2012年2月6日 9:35
    2012年1月30日 14:21

全部回复

  • vector<CString>::iterator it;直接这样就可以了,用的时候再赋值给它。比如

    vector<CString> vec;

    ....

    vector<CString>::iterator it;

    for(it = vec.begin(); it != vec.end(); it++)
    {
      ....
    }


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 Rob Pan 2012年2月6日 9:35
    2012年1月30日 13:14
    版主
  • 谢谢,真的没错误了,我经验太少了,这么明显的问题都没反应过来。

    可是编译后,却有那么多提示,为什么都是cannot found呢?我的系统是XP系统+VS2010

    已加载“C:\WINDOWS\system32\ntdll.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\kernel32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\mfc100d.dll”,已加载符号。
    已加载“C:\WINDOWS\system32\msvcr100d.dll”,已加载符号。
    已加载“C:\WINDOWS\system32\user32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\gdi32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\shlwapi.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\advapi32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\rpcrt4.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\secur32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\msvcrt.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\comctl32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\msimg32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\oleaut32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\ole32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\msvcp100d.dll”,已加载符号。
    已加载“C:\WINDOWS\system32\imm32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\lpk.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\usp10.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\guard32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\version.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\fltlib.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\uxtheme.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\mfc100chs.dll”,未使用调试信息生成二进制文件。
    已加载“C:\WINDOWS\system32\shell32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\comctl32.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\MSCTF.dll”,Cannot find or open the PDB file
    已加载“C:\WINDOWS\system32\MSCTFIME.IME”,Cannot find or open the PDB file


    原来是按CTRL+F5,就没有报那么多cannot found了
    2012年1月30日 13:32
  • Cannot find or open the PDB file

    这一句是正常的,因为那些系统的DLL你没有下载PDB文件,所以调试的时候,会提示你找不到符号文件。

    这个初学着一般可以先不考虑

     

    至于Ctrl+F5就没有了,是因为你原来按的是F5,这样是调试,会显示出一些调试辅助信息

    但是Ctrl+F5是直接运行,这些信息就不显示了,或者说没有生成这些调试用的辅助信息。

    • 已标记为答案 Rob Pan 2012年2月6日 9:35
    2012年1月30日 14:21