我在VC6.0调试通过的程序,然后移到VS2005的工程里面,错误一大堆,真后悔一开始赶时髦用2005了,真不懂VS2005是垃圾还是我是垃圾搞了半天,终于只有一个问题了,就是:
我在一个窗口的OnCreate函数中添加的代码:
CString Name;
while(!m_Rs->adoEOF)
{
value=m_Rs->GetCollect("name");
if(value.vt!=VT_NULL){
    Name=value.bstrVal;
    m_List1.AddString(LPCTSTR(Name));//.AddString(Name);
  }
  m_Rs->MoveNext();
}运行出错,DEBUG时,发现错在AddString这句,
真没办法了,差点就跳楼去了,查MSDN,查BAIDU,都没解决
花了俺一个下午,请大家帮我看一下,谢谢
环境是:VS2005下的MFC

解决方案 »

  1.   


    DEBUG时,运行ADDSTRING就提示,**.exe触发了一个断点,就跳到了这里_AFXWIN_INLINE int CListBox::AddString(LPCTSTR lpszItem)
    { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_ADDSTRING, 0, (LPARAM)lpszItem); }
      

  2.   

    是不是分不够啊,再加三十分!!!!另外,我新建了一个MFC程序,然后单独试用CListBox,也不行,真不知道LPCTSTR怎么初始化了
      

  3.   

    不是分的问题, 是下面的这些是 MFC 源码, 看不出问题:
    _AFXWIN_INLINE int CListBox::AddString(LPCTSTR lpszItem)
    { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_ADDSTRING, 0, (LPARAM)lpszItem); }要不这样, 请发 email 到 [email protected] 我看看.
      

  4.   

    还没有收到你的邮件, 要不这样, 你发到我另一个邮箱试试:
    [email protected]
    注意把 *.ncb, *.opt 文件以及 Debug 或者 Release 目录都删除, 再压缩一下.