|
Since you mention m_hThread, I assume your ListRecThread is a subclass of CWinThread ?
1. Set the m_autoDelete member variable to false in ListRecThread's constructor.
2. Then do WaitForSingleObject( ListRecThread->m_hThread,INFINITE) in TxThread
3. Perform a delete operation on m_listRecThread from TxThread. I assume you have stored a pointer to ListRecThread in TxThread
That ought to work
Hope that helps
|
|
|
|
|
I tried your suggestion but it is still giving me weird errors.
The threads are all appearing to shut down ok as I watch it in the task manager, but once the threads have all closed I am getting Debug Assert errors, memory read errors and unhandled exceptions! Using the debugger I cant find where it is going wrong either and it seems almost random as it sometimes gets a debug assert error on the waitforsingle object for the TxThread.
Oh well I think things have gotten a bit messy so I might have to go back and re-work some stuff!
Thanks anyway
|
|
|
|
|
MarkPQ wrote:
but once this line executes is says Debug assertion failed followed by a message saying the thread has exited with code 0x3
Debug assertion tells you a lot about the problem - check the stack and you'll be able to see what exactly caused the assert to fire.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Thanks for the help,
I found on the call stack that it was a GetAt() call for a CByteArray causing the assertion error. It was then that I realised that in the troublesome thread, it calls several functions that check for quit messages also and return nothing if it is the case. At one point in the thread I had a bug where I checked a CByteArray that if the Quit message was received from the function preceeding . . . would not exist and hence causing the assertion error! Silly me!
Its all fixed now! Thanks for your help! Greatly appreciated!
|
|
|
|
|
Hi,
I have a image loaded form a file through
LoadImage().I will extract the buffer & put into another file(dummy file).When i see the content of the dummy file,the image is looks as it is been fliped vertical.
I mean top portion is placed at the bottom.
Here is bit of code where i write to a dummy file.
CreateFile (the_acFile, GENERIC_READ |GENERIC_WRITE, FILE_SHARE_READ, NULL,OPEN_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, NULL) ;
WriteFile(m_hPreviewFile, in_Buffer, lpbminfo->biSizeImage , &the_BytesWritten, NULL );
Can anyone help me..
Neha
|
|
|
|
|
How are you getting your byte values for the image into the lpbminfo structure? If you are using a function like GetDIBits , it is possible to load the image upside down.
A bottom-up DIB is specified by setting the height to a positive number, while a top-down DIB is specified by setting the height to a negative number.
|
|
|
|
|
I load the image through
where gszPreviewFile is a path to a dib file.
DIBSECTION ds;
hImage = (HBITMAP)::LoadImage (AfxGetInstanceHandle(), gszPreviewFile, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE |LR_CREATEDIBSECTION );
GetObject(hImage, sizeof(BITMAP), &bm);
GetObject(hImage, sizeof(DIBSECTION), &ds);
lpbminfo =ds.ds.dsBmih ;
Buffer i will write to dummy file i will get it from bm.bmbits.
|
|
|
|
|
If i use
GetDIBits(NULL,hImage,1,ds.dsBm.bmHeight ,the_buffer,&bmi,DIB_RGB_COLORS);
It returns me error as 87,INVALID_PARAMETER.
Could anyone pl help me.
Neha
|
|
|
|
|
Hi
i wanna tell VC to stop reporting linker warning LNK4006
symbol already defined in object; second definition ignored
(i'm being a bit lazy with my global (wooo naughty boy using a global )
what #pragma do i use to tell the linker to shut up about it? or do i use something else?
regards
Bryce
|
|
|
|
|
#pragma warning( disable : 4006)
|
|
|
|
|
nope
that turns off the compiler warning
not the linker one
Bryce
|
|
|
|
|
Well in that case there will not be a #pragma to turn off the linker warning.
You can reduce the warning with this switch /WARN[:level] where level is 0-3. The higher the number the higher the number of warnings that you may receive. But I do not know of a way to disable a linker warning.
|
|
|
|
|
Allows selective modification of the behavior of compiler warning messages.
Pragmas won't work I don't think.
You could set the wanring level, but that is not as specific as a pragma i'm afraid.
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
A post on the lounge reminded me of something I've been meaning to look up for a while: benchmark tests on .NET.
Does anyone know of any benchmarks available, and, would anyone be interested in porting some standard benchmarks to C#, VB.NET and/or Managed C++?
cheers,
Chris Maunder
|
|
|
|
|
Chris Maunder wrote:
would anyone be interested in porting some standard benchmarks to C#, VB.NET and/or Managed C++?
If it does not involve too much math, I'd be interested.
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
I'm not sure, but keep in mind point 5.9 of the EULA which requires you to get written approval from Microsoft before publishing the results. I don't think that would be a problem for you, but I don't want you to get in trouble because you forgot. I've gotta look after my favorite dev site heh
- Jason
Do you have a Pulse?
SonorkID: 100.611 Jason
Veni, vidi, VC
- I came, I saw, Visual C
|
|
|
|
|
EULA? What's a EULA? <look of sweet innocence>
cheers,
Chris Maunder
|
|
|
|
|
Hi
I am trying to find any example of Console application with CView object as a monitor for the program.
Any ideas ?
Thank you
Gollum
|
|
|
|
|
You'd also need to create a frame window to hold the view window. And manage your message pump. I seriously dont think it's worth the effort.
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
The idea is to havesome kind of application running my code and another
thread which is capable managing my administration needs of the main
thread as well as showing log information in the special window.
Is there a way to do thet? Or I have to connect to my application with some
kind of communication stuff and send all the information force and back between my main application and administration tool?
Gollum
|
|
|
|
|
Hey all,
I'm getting exceptions thrown when I create a CPen like this:
CPen(PS_SOLID, 4, RGB(0,0,0))
CPen's constructor uses the following code:
if (!Attach(::CreatePen(nPenStyle, nWidth, crColor)))
AfxThrowResourceException();
and Attach() fails coz ::CreatePen() returns NULL. I can't descend into ::CreatePen(), I assume because the source-code isn't supplied.
Now according to MSDN, "If the function fails, the return value is NULL". But why is it failing?
The constructor only starts throwing exceptions after my app has been running for a while (i.e. about 10mins of hard work), but I don't know enough about MFC to deduce what that means about my problem.
In the ::CreatePen() documentation MSDN says "Windows NT/2000: To get extended error information, call GetLastError.". I tried that in a catch(...) straight after calling CPen's constructor, but the string I get is "Operation Completed". Not really that helpful. And yes, I am running NT
Why Oh Why is this happening ? Has anyone else experienced this? Can anyone suggest anything?
And here's another wierd thing. I have another call to CPen::CPen(...) in another class's member function, and that seem's to work. Or at least it doesn't throw an exception as far as I know.
I hope someone can stop me pulling /all/ my hair out over this!
TIA,
Pete
|
|
|
|
|
Ummm... The only reason I can think of for ::CreatePen failing is that you're running out of GDI resources. After creating and using a pen, you must delete it with ::DeleteObject , but I guess the CPen destructor takes care of this. Also, if you're selecting the pens into a DC, you must deselect them back when no longer needed.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I think you're onto something.
I just noticed that once things start failing, the stock error messages that VS displays (i.e. for an ASSERT(false) ) are not in their normal font, they're in the default ugly font.
I guess I'm running out of resources coz I'm not deselecting Pens, Brushes etc.
I'll try doing that, and see if that fixes it.
Thanks a lot for your help Joaquin
Pete
|
|
|
|
|
Use windows resource meter or VC++ stress utility to watch your resources drop of the face of the earth if your not selecting orignal pens back into the DC.
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
I have a situation where I have #define with an identifer but no token string.
The identifier is defined and can be tested if it is defined or not, but how can I test the identifier for no token string ?
|
|
|
|