2个dlg窗口, 里面2个datapicker. 
用debug方式编译, 出来的初试日期,都是当天。用release方式编译,出来的初试日期,一个是0(1970) 一个是今天。鬼啊,救命~~~~~~~~~~~``

解决方案 »

  1.   

    另外,在debug方式下运行没有错误的操作,到了release下运行,都会出现致命错误。
    怎么回事情啊,颠倒了.......
      

  2.   

    数组越界 ? 举个例子 好么?release错时,停在
    ==========
    void* CMapPtrToPtr::GetValueAt(void* key) const
    // find value (or return NULL -- NULL values not different as a result)
    {
    if (m_pHashTable == NULL)
    return NULL; UINT nHash = HashKey(key) % m_nHashTableSize; // see if it exists
    CAssoc* pAssoc;
    for (pAssoc = m_pHashTable[nHash]; pAssoc != NULL; pAssoc = pAssoc->pNext)
    {
    if (pAssoc->key == key)
    return pAssoc->value;
    }
    return NULL;
    }
    ==============
      

  3.   

    若可以的,发个来帮你调试。
    [email protected]
      

  4.   

    如果你确定是在这里出错的话(大部份情况这句话很难成立), 检查nHash的值,有可能是-1,检查pAssoc的值,可能是0;这种参数是void*,返回值是void* 型的函数应尽量避免,你何苦让编译器偷赖,自己难受呢?!
      

  5.   

    初始化这两个datapicker,debug 是对变量自动初始化的,release是不会自动初始化的