|
I have a small console program that I have written that seems to execute correctly, but I keep getting a Debug Assertion Failed! error when the program is exiting. And it points to this file dbgdel.cpp line 52 and Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse).
If I just comple a release version I do not get any error messages when the program exits.
I am stuck on how to fix this error. Is it important that I do fix it?
Any help will be great.
-----------------------
Ok now what?
-----------------------
|
|
|
|
|
It looks to me like perhaps you're calling delete twice ? When you delete a pointer, do you set it to NULL ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
I don't see any place that I am calling delete twice. I just got a different error. This one said "DAMAGE: after Normal block (#48) at 0x00F74F18" and when I click on the "Ignore" button then I get the first error message again.
The program does make calles to a third parties api that I am using is it possible that something in thier code is calling delete after my code has finished?
-----------------------
Ok now what?
-----------------------
|
|
|
|
|
It's entirely possible that a third party API is creating the ASSERT. Look at the call stack to see where the call comes from that ends up with that ASSERT.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Orville Warnick wrote:
And it points to this file dbgdel.cpp line 52
Can you set a breakpoint on this line? When the breakpoint is hit, check the call stack to see how your program got there.
Orville Warnick wrote:
If I just comple a release version I do not get any error messages when the program exits.
You may not get an error message, but the symptom that caused the error still exists.
Orville Warnick wrote:
Is it important that I do fix it?
That all depends on if you want a bug in your program.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Anyone has a hint as to why a service might start successfully on WinXP and Win2003 machines, but not on Win2000 machines?
|
|
|
|
|
How do you define "successfully"? First thought is that you are using an API function that is only supported in XP or W2K3.
|
|
|
|
|
Successfully as in starts up, runs, and keeps running until i decide to stop it. On Win2000 it displays that infamous message box saying that the service cannot start in a timely fashion.
|
|
|
|
|
My first rule of writing services - start a ssecnd thread as quickly as possible, and do all your REAL work in the second thread. Leave the primary thread to report status back to the service control handler and to respond to the service requests.
You probably are doing everything in a signle thread, and on Windows 2000 something is taking longer than the 6 or 10 seconds Win2K is willing to wait before declaring your service 'stuck'.
|
|
|
|
|
Your first rule also happens to be my rule as well
Actually it is a service pack issue. On some Win2K's it was working ok, but on some others it wasn't. The ones on which it failed did not have SP4 installed.
We're still investigating it further...thanks for stopping by and help just the same!
|
|
|
|
|
char read_ack_buffer[30] ="";
char read_resp_buffer[30] ="";
char ser_no_buffer[20]="";
memset (read_ack_buffer, '\0', 30);
memset (read_resp_buffer, '\0', 30);
memset (ser_no_buffer, '\0', 20);
i=0;j=0;
.....
do
{
if (!ReadFile(hPort, &ch, 1, &Len, NULL))
goto fin ;
else
{
fprintf(fp,"%c\n",ch);
read_ack_buffer[i] = ch;
if(i>=3 && i<9)
{
ser_no_buffer[j] = ch;
j++;
}
if(i>=10)
{
if(i==10)j=0;
read_resp_buffer[j] = ch;
j++;
}
}
i++;
}while(Len == 1);
I have the above which reads values from the COM port.
I read certain values into certain arrays.
When I compile the code in debug mode all works fine.
But when I compile in release mode, the arrays read_ack_buffer and ser_no_buffer gets same value even though the control does'nt go into the
if(i>=3 && i<9) loop when i<3 and i>9.
How do I resolve this...thanks in advance..
|
|
|
|
|
I have a VC++ solution containing two projects. I can open the solution and work with it without any problems on my laptop PC. But when I try to open it on my desktop PC, I get this error saying it can not open the .vcproj file for one of the projects. (It opens the other project fine.)
I am using the same version of Visual Studio (.NET 2003 Ent. Arch. MSDN) and have copied the solution from the laptop to the desktop to be sure I have all the same files and to be certain the .vcproj file is valid. I can open other similar solutions on both computers.
Any ideas?
If you continue to do the same things you always did, don't be surprised if you get the same results you always got.
|
|
|
|
|
Is there a way to reset all the objects on my dialog app. I have a number to text edit boxes, check boxes and radio buttons. I did't want to have to step thru each one to initialize.
Thanks
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
I doubt it. You could write a method that does it by iterating through all the controls and checks their type. Or look, someone else on this site may have done it already.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
good afternoon
I got the problem with memory leak. so I started to debug the code
CB_DBF_NTX* const p = OpenDbfNtxHelper( szDbfName, szIndexName, szIndexKey );
P has the value of 0xccccccc,
CB_DBF_NTX* pDbf = new CB_DBF_NTX( const_cast<char*>( szDbfName ) );
pDbf also has value of 0xccccccc,
but seems like they both have been defined.....would it the problem with CB_DBF_NTX*?
thanks for any info
|
|
|
|
|
valerie99 wrote:
but seems like they both have been defined.....
But did you ever delete them ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Hi all,
When I call ->EnableWindow(FALSE) on my CListCtrl the control is indeed disabled. But the colors havent changed. I want the user to still see the selected items etc but drawn with greyed out colors like the buttons etc.
Is there any quick way of doing this other than overriding the customdraw stuff?
thanks,
doodlebug
|
|
|
|
|
Hello,
I want to import a c# dll in a vc mfc project. can you help me?
Thanks,
mihai
|
|
|
|
|
|
I have a program that is an SDI. I use much of it just as a menu bar to control other windows on my machine. It would be helpful if I could just attach this menu bar to, say, the top of the screen, or perhaps the top left corner of my screen. Is there a way for me to dock my program to an edge of the screen?
Danny
|
|
|
|
|
Hi folks,
I'm the process of moving the company product from Visual Studio 6 (VC++ / MFC) to studio 2003. Has anyone got any tips they could share with me about pitfalls etc.? Or maybe some website articles on this topic?
It's strange having to get to grips with a new IDE after all this time. There's a few things I can't find (and I've had a good look!). Have MS removed the 'Set active configuration' feature that was in v6? Or have they renamed it? The workspace ("solution"?) I'm upgrading contains 5 projects, each with debug and release configs - can I set which is active, or will I need to close the workspace and open the specific project to achieve the same result?
One more question: can I still use MFC 6 with this version of studio, or will I need to move to MFC 7?
-Dy
|
|
|
|
|
One pitfall I know is this:
In MFC6 the MakeLower and MakeUpper functions of CString make the string object itself lower- or uppercase. In MFC7, the return value is the changed string, the string object itself is untouched.
So, if you are using these functions, keep this in mind...
Geert
Want to spread the newest version of your software automatically for free? Use Updater!
Visit my website: www.gvhsoftware.org
|
|
|
|
|
anything that works on VC6 will also work in VC7 ??
|
|
|
|
|
That depends on your definition of work. Geert has already mentioned that CString::ToUpper() and CString::ToLower() have changed. They still work, but how you use them might have changed.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
For the active configuration, right click in the Solution (the root of the tree in the Solution Explorer) and choose "Configuration Manager". The same option is also in the "Build" menu.
To change the active project, you can right click on a project and select "Set as StartUp Project". It's also in the "Project" menu.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|