Zhanli's tech notes
stuff about SQL Server, Debugging, Windows, Coding and more......
How to detect whether the connection to SQL Server is broken or not
For managed code, use SqlConnection’s StateChange event: ...
Author: Zhan Li [MS] Date: 01/04/2012
C++ small gotcha - 3
Have two class as below: struct MyBase { __int64 x; __int64 y; MyBase() { memset(this, 0,...
Author: Zhan Li [MS] Date: 12/30/2011
C++ small gotcha - 2
What’s wrong with the below code: // a wrapper class which holds memory that’s allocated...
Author: Zhan Li [MS] Date: 12/29/2011
C++ small gotcha
Suppose str1 and str2 points to the same zero terminated string, will str1 and str2 be the same...
Author: Zhan Li [MS] Date: 05/20/2011
Design pattern in .NET: iterator
The iterator pattern plays very important role in STL. In STL, iterators are the glue between...
Author: Zhan Li [MS] Date: 07/19/2010
How to get high resolution timing info
We know that we can use GetTickCount to get timing info but the resolution of this API is limited to...
Author: Zhan Li [MS] Date: 07/08/2010
C++ Tips: Adjustor thunk: what is it, why and how it works
When you debug C++ applications, you may notice below unusual functions generated by the compile....
Author: Zhan Li [MS] Date: 07/01/2010
C++ tips: Why the pop method of STL stack does not return a value
Or why they don't combine the functionality of pop/top method into one function? We know that the...
Author: Zhan Li [MS] Date: 06/28/2010
C++ tips: why you should not leak exception from a destructor
One of the reasons: we know the destructor of an auto object can be called in two situations: 1....
Author: Zhan Li [MS] Date: 06/28/2010
Design pattern in .NET: template method
GoF's classical design pattern book has discussed template method pattern: define the skeleton of an...
Author: Zhan Li [MS] Date: 06/26/2010
Structured Exception Handling (SEH) and C++ exception handling
C++ exception handling builds on top of the OS SEH support. If you are writing C++ code, it is...
Author: Zhan Li [MS] Date: 06/25/2010
C++ tips: Disable "Enable Incremental Linking" linker option to get better symbols
By default, Visual Studio does not generate very friendly symbol names. For example, if you build...
Author: Zhan Li [MS] Date: 06/25/2010
C++ tips: AddVectoredExceptionHandler, AddVectoredContinueHandler and SetUnhandledExceptionFilter
I write below code to verify the behaviors of AddVectoredExceptionHandler,...
Author: Zhan Li [MS] Date: 06/24/2010