Windows application crashing on a single machine

Discussion in 'C++' started by Sandy, Jan 24, 2007.

  1. Sandy

    Sandy Guest

    HI All,
    I have created a MFC exe using VC++ .NET 2003 on Windows XP Prof
    service pack 2 and it works properly on my machine, but when I run the
    same exe on a different machine (Windows XP Prof SP-2), The application

    is bought up and after some time its throwing a windows xp error dialog

    box saying,

    I am also running the same application on 2 more machines there
    everything works fine.

    Here is thr Windows XP error dialog box that appreas when its crashed
    TODO: <File description> has encountered a problem and needs to close.
    We are sorry for any inconenience.

    If you are in the middle of something, the information you were working

    on might be lost.


    Please tell Microsoft about this problem.


    blab blah....


    I have function called OnNotifyNewData (WPARAM wParam, LPARAM lParam)
    which appreas to be cauing the problem. When I run the application
    commenting this function its didnt crashed.

    LRESULT CUserViewFrame::OnNotifyNewData (WPARAM wParam, LPARAM lParam)
    {
    const char* strVariable("CUserViewFrame::OnNotifyNewData START");
    const char* strValue("6");
    CUtility::LogDebugInfo( strVariable, strValue);

    WRITE_LOG_FUNCTION_ENTRY("LRESULT CUserViewFrame::OnNotifyNewData
    (WPARAM wParam, LPARAM lParam)")

    PInstData pInstData = (PInstData)wParam;
    if (!pInstData) return 0;

    CString csText;
    char buffer[255];
    LVFINDINFO info;
    int iIndex = 0;

    PSystemSetting pSystemSetting = CSystemSetting::GetObject();

    info.flags = LVFI_WRAP|LVFI_STRING;
    std::vector<CMarketData>::const_iterator iter;
    std::vector<CParticipant>::const_iterator iterpart;

    const std::vector<CMarketData> & userListBid =
    pInstData->GetMarketDataBid();
    for (iter = userListBid.begin(); iter != userListBid.end(); iter++)
    {
    const std::vector<CParticipant> & participants =
    iter->GetParticipants();
    for (iterpart = participants.begin(); iterpart != participants.end();
    iterpart++)
    {
    if (iterpart->GetSize() > 0.0 && iter->GetPrice() > 0.0)
    {
    memset(&buffer, 0, sizeof(buffer));
    if (sizeof(iterpart->GetUserName()/*.c_str()*/) > 255
    continue;
    //sprintf(buffer, "%s", iterpart->GetUserName()/*.c_str()*/);
    info.psz = iterpart->GetUserName();
    iIndex = m_ctrlUserListCtrl.FindItem(&info);
    if (iIndex == -1)
    { // insert the item
    iIndex = m_ctrlUserListCtrl.GetItemCount();

    if (sizeof(iterpart->GetUserName()/*.c_str()*/) > 255
    continue;
    //csText.Format(TEXT("%s"), iterpart->GetUserName()/*.c_str()
    csText = iterpart->GetUserName(); //Sanjeev 012407
    int size = iterpart->GetUserName().GetLength();
    char bufsize[20];
    memset(&bufsize, 0, sizeof(bufsize));
    _itoa(size,bufsize,10);
    CUtility::LogDebugInfo( "OnNotifyNewData - BID UserName", bufsize);
    m_ctrlUserListCtrl.InsertItem(LVIF_TEXT|LVIF_STATE, iIndex, csText,
    0, LVIS_SELECTED, 0, 0);
    char * pchText = new char [csText.GetLength() + 1];
    strcpy(pchText, (LPCTSTR)csText);
    m_ctrlUserListCtrl.SetItemData(iIndex, (DWORD)pchText);
    }
    if (sizeof(pInstData->GetInstName()/*.c_str()*/) > 255)
    continue;
    //csText.Format(TEXT("%s"),
    pInstData->GetInstName()/*.c_str()*/); csText =
    pInstData->GetInstName();
    m_ctrlUserListCtrl.SetItemText(iIndex,
    eUserViewListColumn::BID_INST, csText);

    memset(&buffer, 0, sizeof(buffer));
    sprintf(buffer, "%%.%df", pSystemSetting->GetDecimalSize());
    csText.Format(buffer, iterpart->GetSize());
    m_ctrlUserListCtrl.SetItemText(iIndex,
    eUserViewListColumn::BID_SIZE, csText);

    memset(&buffer, 0, sizeof(buffer));
    sprintf(buffer, "%%.%df", pSystemSetting->GetDecimalPrice());
    csText.Format(buffer, iter->GetPrice());
    m_ctrlUserListCtrl.SetItemText(iIndex,

    eUserViewListColumn::BID_PRICE, csText);

    if (sizeof(iterpart->GetTimestamp().c_str()) > 255)
    continue;
    csText.Format("%s", iterpart->GetTimestamp().c_str());
    m_ctrlUserListCtrl.SetItemText(iIndex,
    eUserViewListColumn::BID_TIME, csText);
    }
    }
    }

    const std::vector<CMarketData> & userListAsk =
    pInstData->GetMarketDataAsk();
    for (iter = userListAsk.begin(); iter != userListAsk.end(); iter++)
    {
    const std::vector<CParticipant> & participants =
    iter->GetParticipants();
    for (iterpart = participants.begin(); iterpart != participants.end();
    iterpart++)
    {
    if (iterpart->GetSize() > 0.0 && iter->GetPrice() > 0.0)
    {
    memset(&buffer, 0, sizeof(buffer));
    if (sizeof(iterpart->GetUserName()/*.c_str()*/) > 255)
    continue;
    //sprintf(buffer, "%s", iterpart->GetUserName()/*.c_str()*/);
    int size = iterpart->GetUserName().GetLength();
    char bufsize[20];
    memset(&bufsize, 0, sizeof(bufsize));
    _itoa(size,bufsize,10);
    CUtility::LogDebugInfo( "OnNotifyNewData - ASK UserName", bufsize);
    info.psz = iterpart->GetUserName();
    iIndex = m_ctrlUserListCtrl.FindItem(&info);
    if (iIndex == -1)
    { // insert the item
    iIndex = m_ctrlUserListCtrl.GetItemCount();
    if (sizeof(iterpart->GetUserName()/*.c_str()*/) > 255)
    continue;
    //csText.Format(TEXT("%s"), iterpart->GetUserName()/*.c_str()*/);
    csText = iterpart->GetUserName();
    m_ctrlUserListCtrl.InsertItem(LVIF_TEXT|LVIF_STATE, iIndex, csText,
    0, LVIS_SELECTED, 0, 0);
    char * pchText = new char [csText.GetLength() + 1];
    strcpy(pchText, (LPCTSTR)csText);
    m_ctrlUserListCtrl.SetItemData(iIndex, (DWORD)pchText);
    }
    if (sizeof(pInstData->GetInstName()/*.c_str()*/) > 255)
    continue;
    //csText.Format(TEXT("%s"), pInstData->GetInstName().c_str());
    csText = pInstData->GetInstName();
    m_ctrlUserListCtrl.SetItemText(iIndex,

    eUserViewListColumn::ASK_INST, csText);

    memset(&buffer, 0, sizeof(buffer));
    sprintf(buffer, "%%.%df", pSystemSetting->GetDecimalSize());
    csText.Format(buffer, iterpart->GetSize());
    m_ctrlUserListCtrl.SetItemText(iIndex,

    eUserViewListColumn::ASK_SIZE, csText);

    memset(&buffer, 0, sizeof(buffer));
    sprintf(buffer, "%%.%df", pSystemSetting->GetDecimalPrice());
    csText.Format(buffer, iter->GetPrice());
    m_ctrlUserListCtrl.SetItemText(iIndex,

    eUserViewListColumn::ASK_PRICE, csText);

    if (sizeof(iterpart->GetTimestamp().c_str()) > 255)
    continue;
    csText.Format("%s", iterpart->GetTimestamp().c_str());
    m_ctrlUserListCtrl.SetItemText(iIndex,

    eUserViewListColumn::ASK_TIME, csText);
    }
    }
    }

    VERIFY(m_ctrlUserListCtrl.SortItems( CompareFunction, r

    einterpret_cast<DWORD>(&m_ctrlUserListCtrl)));

    WRITE_LOG_FUNCTION_EXIT("LRESULT
    CUserViewFrame::OnNotifyNewData (WPARAM wParam,
    PARAM
    lParam)")

    const char* strVariable1("CUserViewFrame::OnNotifyNewData END");
    CUtility::LogDebugInfo( strVariable1, strValue);

    return 0;
    }


    Is there any chance the sprintf or CString Format function is creating
    this problem.

    I have spent lot of time it undertsanding this bug with no success. Any
    help would be greatly appreciated.

    Regards,
    Sandy
     
    Sandy, Jan 24, 2007
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Steve
    Replies:
    4
    Views:
    356
    Ken Cox [Microsoft MVP]
    Mar 18, 2005
  2. =?iso-8859-15?Q?Pierre-Fr=E9d=E9ric_Caillaud?=

    Unpickling crashing my machine

    =?iso-8859-15?Q?Pierre-Fr=E9d=E9ric_Caillaud?=, Jul 30, 2004, in forum: Python
    Replies:
    3
    Views:
    309
    =?iso-8859-15?Q?Pierre-Fr=E9d=E9ric_Caillaud?=
    Jul 30, 2004
  3. Sandy
    Replies:
    1
    Views:
    290
    Michael DOUBEZ
    Jan 24, 2007
  4. Sandy
    Replies:
    1
    Views:
    263
    Ian Collins
    Jan 24, 2007
  5. Andrew Berg
    Replies:
    0
    Views:
    172
    Andrew Berg
    Oct 4, 2012
Loading...

Share This Page