|
A Program in debug or release build must work similarly. once i had a similar problem, i delivered the debug version because it was behaving accordingly. it has nothing to do with grids or any thing else, it looks like VC6 bug (i think).
|
|
|
|
|
|
Thanks. Your answers gave me idea to build the Release version with /D _DEBUG instead of /D NDEBUG. Looks like it solves my problem.
Before, I suspected that optimization had something to do with the problem. I tried turn off optimization but it did not work.
Thanks for all your replies. I am grateful.
|
|
|
|
|
|
tieng86 wrote: Your answers gave me idea to build the Release version with /D _DEBUG instead of /D NDEBUG. Looks like it solves my problem.
Sorry to hijack the thread, but that just masks the problem, it's not a solution.
If just changing that define (/D) fixes it then maybe you've just improperly used the debugging
macros (like ASSERT).
|
|
|
|
|
That's another idea. I used ASSERT, VERIFY and TRACE. I search thru these calls and did not see any problem. Can you give me an example of an improper use of these macros? I've traced the code to the MFC layer and did not find any problem. The lock up just occured when I run the .exe. If I step thru the release build in codeview, it would not happen either.
here are some examples of how I use assert and verify
ASSERT( accessRight != ACCESSInvisible )
ASSERT( 0 );
ASSERT( pCtrl != NULL );
VERIFY(IsInit());
VERIFY(GridWnd()->OpenClipboard());
etc...
Thanks
|
|
|
|
|
Those look good. I'm referring to things like
ASSERT(GridWnd()->OpenClipboard());
that don't get compiled when _DEBUG isn't defined.
Are you linking with any DLLs that are built with _DEUBUG defined?
The article that toxcct linked to has lots of good tips.
|
|
|
|
|
Hi every body,
I am looking for a good starting point with MSXML.
I already compared several XML Libraries, and I think I want to give this one a try, but where to find doc ?
has anyone ever used it and want to give me his feeling about it too ?
thanks all
ps:I downloaded MSXML6
|
|
|
|
|
Have you looked in to MSDN ?
|
|
|
|
|
Hi prasad, yes I tried, but all I find on MSDN are tech docs, not tutorial. Do you have any relevant link ?
|
|
|
|
|
Not sure about tutorials, but you can have look at this[^] article .
Search at CP gives me this[^] result.
|
|
|
|
|
Dear All,
I am getting a Memory Leak. I am giving the Seniario.
Code.
//=======================================================================
CPictureHolder pic;
HICON hIconToDraw = mC_LibColorBar->mf_GetSelectedLibClrIcon();
//Get An Icon and store in hIconToDraw.
pic.CreateFromIcon(hIconToDraw);
//=======================================================================
The Statement
"HICON hIconToDraw = mC_LibColorBar->mf_GetSelectedLibClrIcon(); will load an Icon.
But there is a Memory Leak how can i Resolve this.
Urgent pls help me out.
//=======================================================================
Uday kiran
|
|
|
|
|
uday kiran janaswamy wrote: mC_LibColorBar->mf_GetSelectedLibClrIcon();
What is mC_LibColorBar ?
How icon returned by mf_GetSelectedLibClrIcon() is create ?
Function name is really strange.
|
|
|
|
|
Hi Prasad,
The Statement "mC_LibColorBar->mf_GetSelectedLibClrIcon();" will return the ICon.
how can i delete that ICon, if i am trying to delete that Icon Handle then Asserion is comming.
If i dont delete then a Memory Leak is comming.
Uday kiran
|
|
|
|
|
Hi Prasad,
The Code i am giving will get you clear picture.
//====================================================
HICON CGTD2to32ColorWnd::mf_GetSelectedLibClrIcon()
{
return mf_GetLibClrIcon(mui_ColorSelected);
}
//=====================================================
which inturn calls this function
//=====================================================
HICON CGTD2to32ColorWnd::mf_GetLibClrIcon(long pl_LibClr)
{
CImageList *lpi_LibToolbarImageList = NULL;
HICON lH_Icon = NULL;
HICON lH_ReturnedIcon = NULL;
// Get the Toolbar internal imagelist.
if(pl_LibClr == ID_NOCOLOR_SELECTED && mb_ShowAllColorButton)
{
lpi_LibToolbarImageList = mC_wndAllColorToolBar.GetToolBarCtrl().GetImageList();
}
else
{
lpi_LibToolbarImageList = mC_wndColorToolBar.GetToolBarCtrl().GetImageList();
}
int li_BtnIdx = mf_GetLibButtonIndex(pl_LibClr);
// Extract the HICON from the toolbar's Image list for the currently selected
// Patten and return the same.
if(lpi_LibToolbarImageList)
{
lH_Icon=lpi_LibToolbarImageList->ExtractIcon(li_BtnIdx);
// Copies the lH_PattrenIcon into lH_ReturnedIcon and deletes the lH_PattrenIcon.
lH_ReturnedIcon = (HICON)(::CopyImage(lH_Icon,IMAGE_ICON,0,0,LR_COPYDELETEORG));
lH_Icon = NULL;
}
// Retrun the copied Icon.
return lH_ReturnedIcon;
}
//=====================================================
in short it will Copy the Icon using
lH_ReturnedIcon = (HICON)(::CopyImage(lH_Icon,IMAGE_ICON,0,0,LR_COPYDELETEORG));
and Return the Icon Handle
Uday kiran
|
|
|
|
|
uday kiran janaswamy wrote: // Copies the lH_PattrenIcon into lH_ReturnedIcon and deletes the lH_PattrenIcon.
lH_ReturnedIcon = (HICON)(::CopyImage(lH_Icon,IMAGE_ICON,0,0,LR_COPYDELETEORG));
lH_Icon = NULL
You need to use DestroyIcon to free memory for icon created by using CopyImage .
So, use DestroyIcon appropriately in your code.
|
|
|
|
|
uday kiran janaswamy wrote: But there is a Memory Leak...
How are you verifying this?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi David,
In the Windows Task Manager GDI Objects.
1) i am clicking the Process Tab so i am getting the GDI Objects. where the Leak is Showing Clearly.
Please help me out.
Uday kiran
|
|
|
|
|
uday kiran janaswamy wrote: so i am getting the GDI Objects. where the Leak is Showing Clearly.
So instead of a memory-leak you have a GDI-resource-leak.
Also, you did not read the docs to ::CopyIcon. What hindered you?
--fixed typo
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
I want to convert a base-100 number into a decimal number.. the thing i dont understand is what is representation of base-100 number? i mean how to differentiate b/w numbers.. Hex uses A,B,C,D,E and F. but how are the digits represented in base-100????
any help, link will be appreciated
thanks
|
|
|
|
|
are you sure you have a base-100(dec) instead of a base-100(bin - base-4) ? lol
seriously, i'm not sure at all such a thing really exist, not find its point of interest.
itoa()[^] documentation for example talks about base-36 max (the 10 digits, plus the 26 latin letter of the alphabet
|
|
|
|
|
Your question doesn't really make sense: a number is a number. The thing that changes is how this number is represented (hex, decimal, ...). It is like have 16 apples in a bucket. You can say "I have 10 (decimal) apples" or you can say "I have 0x10 apples". But in both cases, your number (the number of apples) is still the same.
So what do you want to do exactly ? Convert from a string (of a certain representation) to a number ? Or the opposite ? Or converting from a string to a string ?
BTW, I don't know how base-100 numbers are represented and I even never heard of any use of that. For what purpose are you using that ?
|
|
|
|
|
I worked with a guy once that used a base-36 numbering system before. I don't know the details, other than it used 0-9 and A-Z. Base-100 seems a bit far-fetched. Do you have any reference material?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
|
Ok, but why do you need to convert it? As I understand it, the base-100 format is used internally by Oracle.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|