Well this guy _alloca allocates memory from the stack and not from the heap,basically used by the USES_CONVERSION macro in the ATL ,leading to the cause of stack-overflow ,wen used inside a loop .This automatically gets freed when it goes out of the function scope .
And the default size of the stack in VC6 is 1MB .
ATL7.0 doesn't have this problem.
Sunday, July 30, 2006
Wednesday, July 26, 2006
Scope of namespace
Consider this :-
namespace PPP
{
CMyclass {
....
};
int iPPP;
}
int CMytest::ExampleNameSpace( PPP:: CMyclass &oTest, int p)
{
return iPPP;
}
it takes iPPP from the namespace of the PPP , firstchecks in the scope of CMytest and then in the scope of the std <\b> and then in the scope of the function argument scope .
Popularly known as namelook up rule
namespace PPP
{
CMyclass {
....
};
int iPPP;
}
int CMytest::ExampleNameSpace( PPP:: CMyclass &oTest, int p)
{
return iPPP;
}
it takes iPPP from the namespace of the PPP , firstchecks in the scope of CMytest and then in the scope of the std <\b> and then in the scope of the function argument scope .
Popularly known as namelook up rule
Tuesday, July 25, 2006
How to call the constructors in vector
CMyClass(int ,int):- is the default constructor
std::vector <CMyClass> oTest(2,CMyClass(2,3));
The above line will create 2 objects of type CMyClass and calls the constructor with the params 2 and 3.
std::vector <
The above line will create 2 objects of type CMyClass and calls the constructor with the params 2 and 3.
Sunday, July 16, 2006
Use AfxSetWindowText
Internally this does an GetWindowText and sees wether the text are different and updates only if they are different ,therby saving un-necessary updates,
How easy to delete the linked list in c++
typedef struct _tagLinkedList
{
_tagLinkedList *pNextLink;
int m_iData;
_tagLinkedList()
{
pNextLink = NULL;
}
~_tagLinkedList()
{
if (pNextLink )
delete pNextLink;
pNextLink = NULL
}
}sLinkedList;
{
_tagLinkedList *pNextLink;
int m_iData;
_tagLinkedList()
{
pNextLink = NULL;
}
~_tagLinkedList()
{
if (pNextLink )
delete pNextLink;
pNextLink = NULL
}
}sLinkedList;
Saturday, July 08, 2006
Complete list of pseudoregisters
Description
@ERR
Last error value; the same value returned by the GetLastError() API function
@TIB
Thread information block for the current thread; necessary because the debugger doesn't handle the "FS:0" format
@CLK
Undocumented clock register; usable only in the Watch window
@EAX, @EBX, @ECX, @EDX, @ESI, @EDI, @EIP, @ESP, @EBP, @EFL
Intel CPU registers
@CS, @DS, @ES, @SS, @FS, @GS
Intel CPU segment registers
@ST0, @ST1, @ST2, @ST3, @ST4, @ST5, @ST6, @ST7
Intel CPU floating-point registers
[Table from "Debugging Applications" by John Robbins]
@ERR
Last error value; the same value returned by the GetLastError() API function
@TIB
Thread information block for the current thread; necessary because the debugger doesn't handle the "FS:0" format
@CLK
Undocumented clock register; usable only in the Watch window
@EAX, @EBX, @ECX, @EDX, @ESI, @EDI, @EIP, @ESP, @EBP, @EFL
Intel CPU registers
@CS, @DS, @ES, @SS, @FS, @GS
Intel CPU segment registers
@ST0, @ST1, @ST2, @ST3, @ST4, @ST5, @ST6, @ST7
Intel CPU floating-point registers
[Table from "Debugging Applications" by John Robbins]
Thursday, July 06, 2006
System Messages
Prefix Message category
ABM Application desktop toolbar
BM Button control
CB Combo box control
CBEM Extended combo box control
CDM Common dialog box
DBT Device
DL Drag list box
DM Default push button control
DTM Date and time picker control
EM Edit control
HDM Header control
HKM Hot key control
IPM IP address control
LB List box control
LVM List view control
MCM Month calendar control
PBM Progress bar
PGM Pager control
PSM Property sheet
RB Rebar control
SB Status bar window
SBM Scroll bar control
STM Static control
TB Toolbar
TBM Trackbar
TCM Tab control
TTM Tooltip control
TVM Tree-view control
UDM Up-down control
WM General window
Taken From MSDN
ABM Application desktop toolbar
BM Button control
CB Combo box control
CBEM Extended combo box control
CDM Common dialog box
DBT Device
DL Drag list box
DM Default push button control
DTM Date and time picker control
EM Edit control
HDM Header control
HKM Hot key control
IPM IP address control
LB List box control
LVM List view control
MCM Month calendar control
PBM Progress bar
PGM Pager control
PSM Property sheet
RB Rebar control
SB Status bar window
SBM Scroll bar control
STM Static control
TB Toolbar
TBM Trackbar
TCM Tab control
TTM Tooltip control
TVM Tree-view control
UDM Up-down control
WM General window
Taken From MSDN
Wednesday, July 05, 2006
STL warning
Hi , you all might have faced the STL Junk warning to change them to meaningful one you can download the following perl Script and it will convert them to meaningful details .
you can have it from :-
http://www.bdsoft.com/tools/stlfilt.html
you can have it from :-
http://www.bdsoft.com/tools/stlfilt.html
Tuesday, July 04, 2006
Re :Recursion
Hi Folks you might have read my previous mail on recursion ,so here iam presenting one more great way of doing it using class template :-
template <"int N">
class Fact {
public:
enum { value = N * Fact::value };
};
//Template specialization
class Fact<1> {
public:
enum { value = 1 };
};
make a obj of Factorial and then retreive the value ,the good thing is no function call is made only expansion at runtime is hapening and its an crisp code ,
Template is very powerful in scientific computing .
You can expect more intresting posts on template shortly.
template
class Fact {
public:
enum { value = N * Fact
};
//Template specialization
class Fact<1> {
public:
enum { value = 1 };
};
make a obj of Factorial and then retreive the value ,the good thing is no function call is made only expansion at runtime is hapening and its an crisp code ,
Template is very powerful in scientific computing .
You can expect more intresting posts on template shortly.
Monday, July 03, 2006
Bugs in VC6.0
Sometimes our work gets stuck due to some bugs in vc6.0 and here you can find some of the bug list :-
http://support.microsoft.com/kb/834001/
http://support.microsoft.com/kb/834001/
Sunday, July 02, 2006
Imp Values in Debugger
Value Usage
0xCDCDCDCD Allocated in heap, but not initialized
0xDDDDDDDD Released heap memory.
0xFDFDFDFD "NoMansLand" fences automatically placed at boundary of heap memory. Should never be overwritten. If you do overwrite one, you're probably walking off the end of an array.
0xCCCCCCCC Allocated on stack, but not initialized
0xCDCDCDCD Allocated in heap, but not initialized
0xDDDDDDDD Released heap memory.
0xFDFDFDFD "NoMansLand" fences automatically placed at boundary of heap memory. Should never be overwritten. If you do overwrite one, you're probably walking off the end of an array.
0xCCCCCCCC Allocated on stack, but not initialized
Subscribe to:
Posts (Atom)