debug assertion error in threads of c++ under windows

P

Pushpa

Hi All,

This my part of the c++ program using threads in windows :

//modified by pushpa
struct structExrdDoc
{
CExrdDoc* spDoc;
LPCTSTR sstrFileName;

structExrdDoc():spDoc(NULL),sstrFileName(""){}
};
structExrdDoc sp;

volatile bool running;

UINT CExcelExport::run(LPVOID p)
{
CExrdDoc* me = sp.spDoc;
me->OnSaveDocument ((LPCTSTR)sp.sstrFileName);
running = FALSE;
return 0;
}
//modified by pushpa

void CExcelExport::SaveExcelFile (CExrdDoc* pDoc, const string&
strFileName)
{
sp.spDoc = pDoc; //modified by pushpa
sp.sstrFileName = strFileName.c_str(); //modified by pushpa
running = TRUE; //modified by pushpa
AfxBeginThread(run,NULL); //modified by pushpa
//pDoc->OnSaveDocument (strFileName.c_str()); //modified by pushpa
}


Here the line of code I have commented was taking lot of time, so I hv
tried to use
threads and I am new to this.

This is the declaration in the .h file

static UINT CExcelExport::run(LPVOID p);

After some struggle I could compile the application, but when it is
run I am getting a
Debug assertion error.

debug assertion failed!
program:d:\amsa\amsa\bin\gageanalysisdlld.exe
file:wincore.cpp
line:888
for information on how your program can cause an assertion failure,
see the visual c++

documentation on asserts.

Could you please help me with this.

Thanking you in advance,
Pushpa.
 
S

Sarath

Hi All,

This my part of the c++ program using threads in windows :

//modified by pushpa
struct structExrdDoc
{
CExrdDoc* spDoc;
LPCTSTR sstrFileName;

structExrdDoc():spDoc(NULL),sstrFileName(""){}};

structExrdDoc sp;

volatile bool running;

UINT CExcelExport::run(LPVOID p)
{
CExrdDoc* me = sp.spDoc;
me->OnSaveDocument ((LPCTSTR)sp.sstrFileName);
running = FALSE;
return 0;}

//modified by pushpa

void CExcelExport::SaveExcelFile (CExrdDoc* pDoc, const string&
strFileName)
{
sp.spDoc = pDoc; //modified by pushpa
sp.sstrFileName = strFileName.c_str(); //modified by pushpa
running = TRUE; //modified by pushpa
AfxBeginThread(run,NULL); //modified by pushpa
//pDoc->OnSaveDocument (strFileName.c_str()); //modified by pushpa

}

Here the line of code I have commented was taking lot of time, so I hv
tried to use
threads and I am new to this.

This is the declaration in the .h file

static UINT CExcelExport::run(LPVOID p);

After some struggle I could compile the application, but when it is
run I am getting a
Debug assertion error.

debug assertion failed!
program:d:\amsa\amsa\bin\gageanalysisdlld.exe
file:wincore.cpp
line:888
for information on how your program can cause an assertion failure,
see the visual c++

documentation on asserts.

Could you please help me with this.

Thanking you in advance,
Pushpa.

First of all if, possible remove the duplicate posts.

CExrdDoc* me = sp.spDoc;
me->OnSaveDocument ((LPCTSTR)sp.sstrFileName);

I really dint get how you assigned sp

Your code is not complete and run it in the debug mode. when the
program crashes, just break there and check the call stack. From there
you can identify which part of your code caused the problem.
 
S

Sarath

Hi All,

This my part of the c++ program using threads in windows :

//modified by pushpa
struct structExrdDoc
{
CExrdDoc* spDoc;
LPCTSTR sstrFileName;

structExrdDoc():spDoc(NULL),sstrFileName(""){}};

structExrdDoc sp;

volatile bool running;

UINT CExcelExport::run(LPVOID p)
{
CExrdDoc* me = sp.spDoc;
me->OnSaveDocument ((LPCTSTR)sp.sstrFileName);
running = FALSE;
return 0;}

//modified by pushpa

void CExcelExport::SaveExcelFile (CExrdDoc* pDoc, const string&
strFileName)
{
sp.spDoc = pDoc; //modified by pushpa
sp.sstrFileName = strFileName.c_str(); //modified by pushpa
running = TRUE; //modified by pushpa
AfxBeginThread(run,NULL); //modified by pushpa
//pDoc->OnSaveDocument (strFileName.c_str()); //modified by pushpa

}

Here the line of code I have commented was taking lot of time, so I hv
tried to use
threads and I am new to this.

This is the declaration in the .h file

static UINT CExcelExport::run(LPVOID p);

After some struggle I could compile the application, but when it is
run I am getting a
Debug assertion error.

debug assertion failed!
program:d:\amsa\amsa\bin\gageanalysisdlld.exe
file:wincore.cpp
line:888
for information on how your program can cause an assertion failure,
see the visual c++

documentation on asserts.

Could you please help me with this.

Thanking you in advance,
Pushpa.

Your code is not complete and run it in the debug mode. when the
program crashes, just break there and check the call stack. From there
you can identify which part of your code caused the problem.
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,996
Messages
2,570,238
Members
46,826
Latest member
robinsontor

Latest Threads

Top