In general, we can set breakpoints under the debug mode when our program encounters some problems. However, it's inconvenient to stop the program to debug sometimes, or it's not so easy to solve some logical error just by step debuging. Besides, there will no debug environment on the customer's machine so that it's unable to debug there. And you may just hope to output some information to judge the state of certain running program.
I develop a program that can receive messages from other processes. Maybe you can use it to help you under ciucumstances described above. The principle is very easy. Use one of the interprocess mechanism: windows message. As a result, only a small segment of code need to be inserted to your code. And, I devide messages into different grade: information, warning and error. The code of my test case is shown bellow:
And the interface of this message window and the test program is shown below:
Note that the overhead of message-passing should be considered if you need to take some operation very fast. The result may be not uncertain if you insert the code of sending message.
The downloading address is http://download.csdn.net/source/1486883.