Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Windows application crashing on a single machine

Reply
Thread Tools

Windows application crashing on a single machine

 
 
Sandy
Guest
Posts: n/a
 
      01-24-2007
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

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Windows application crashing on a single machine Sandy C++ 1 01-24-2007 09:28 PM
Windows application crashing on a single machine Sandy C++ 1 01-24-2007 09:03 PM
Custom Taglib problems - instead of a single instance per page, I have a single instance per application. chris brat Java 1 05-10-2006 11:16 AM
Windows 2000 Pro machine crashing and restarting when using Explorer, for example. Will Computer Support 1 05-19-2004 06:14 PM



Advertisments