<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Johnny_de的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/johnny_de</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; johnny_de]]></copyright><item><title><![CDATA[Best Practices for .NET events]]></title><link>https://blog.csdn.net/johnny_de/article/details/7230604</link><guid>https://blog.csdn.net/johnny_de/article/details/7230604</guid><author>johnny_de</author><pubDate>Fri, 03 Feb 2012 10:49:57 +0800</pubDate><description><![CDATA[Event definition
To ease event management in .NET, Microsoft strongly recommends to define events according the following pattern:
    event EventHandler Event;
 
All you have to define is an own]]></description><category></category></item><item><title><![CDATA[Best Practices for .NET enums.]]></title><link>https://blog.csdn.net/johnny_de/article/details/7230587</link><guid>https://blog.csdn.net/johnny_de/article/details/7230587</guid><author>johnny_de</author><pubDate>Fri, 03 Feb 2012 10:45:44 +0800</pubDate><description><![CDATA[Naming
In .NET, enums should not have an "Enum" suffix.
 
Enum documentation
Enums should have an API comment according following pattern. 
    /// 
    /// 
    /// Defines values that specify]]></description><category></category></item><item><title><![CDATA[delete files]]></title><link>https://blog.csdn.net/johnny_de/article/details/4347727</link><guid>https://blog.csdn.net/johnny_de/article/details/4347727</guid><author>johnny_de</author><pubDate>Tue, 14 Jul 2009 15:27:00 +0800</pubDate><description><![CDATA[HANDLE h;WIN32_FIND_DATA fData;while ((h = ::FindFirstFile(dlgFile.m_strFilename,&fData)) != (HANDLE)0xFFFFFFFF){    if (::DeleteFile(fData.cFileName) == FALSE)    {        strMessage.Fo]]></description><category></category></item><item><title><![CDATA[formatting messagebox]]></title><link>https://blog.csdn.net/johnny_de/article/details/4334789</link><guid>https://blog.csdn.net/johnny_de/article/details/4334789</guid><author>johnny_de</author><pubDate>Thu, 09 Jul 2009 16:12:00 +0800</pubDate><description><![CDATA[int CDECL MessageBoxPrintf(TCHAR* szCaption, TCHAR* szFormat, ...){    TCHAR szBuffer[1024];    va_list pArgList;    va_start(pArgList, szFormat);    _vsntprintf(szBuffer, sizeof(szBuffe]]></description><category></category></item><item><title><![CDATA[MFC标准代码集]]></title><link>https://blog.csdn.net/johnny_de/article/details/4328078</link><guid>https://blog.csdn.net/johnny_de/article/details/4328078</guid><author>johnny_de</author><pubDate>Tue, 07 Jul 2009 14:26:00 +0800</pubDate><description><![CDATA[TCHAR szPath[_MAX_PATH];ASSERT(lstrlen(lpszFileName) _countof(szPath));    // #define _countof(_Array) sizeof(*__countof_helper(_Array))    char (*__countof_helper(UNALIGNED _CountofType (&_]]></description><category></category></item><item><title><![CDATA[DECLARE_MESSAGE_MAP( )]]></title><link>https://blog.csdn.net/johnny_de/article/details/4275408</link><guid>https://blog.csdn.net/johnny_de/article/details/4275408</guid><author>johnny_de</author><pubDate>Wed, 17 Jun 2009 09:55:00 +0800</pubDate><description><![CDATA[MFC Library Reference  DECLARE_MESSAGE_MAP   Declares that the class defines a message map. Each CCmdTarget-derived class in your program must provide a message map to handle messages.]]></description><category></category></item></channel></rss>