<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[end_ing的专栏]]></title><description><![CDATA[只是为了不忘记]]></description><link>https://blog.youkuaiyun.com/end_ing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; end_ing]]></copyright><item><title><![CDATA[检查磁盘空间容量]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/23766595</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/23766595</guid><author>end_ing</author><pubDate>Tue, 15 Apr 2014 16:06:10 +0800</pubDate><description><![CDATA[//检查本地磁盘空间
BOOL CheckDiskSpace(HWND hDlg)
{
	ULARGE_INTEGER FreeSpace;
	UINT DiskSize;

	//获得磁盘的容量,单位字节
	GetDiskFreeSpaceEx("c:\\", &FreeSpace, 0, 0);
	//把磁盘容量转换为MB
	DiskSize = (float)FreeSpace.QuadPa]]></description><category></category></item><item><title><![CDATA[api读取注册表键值]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/23766453</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/23766453</guid><author>end_ing</author><pubDate>Tue, 15 Apr 2014 16:04:28 +0800</pubDate><description><![CDATA[BOOL CheckFrameWork(HWND hDlg)
{
	HKEY  hKey; 
	char szKeyPath[MAX_PATH] = "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full";

	//打开启动项Key 
	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyPath, 0, ]]></description><category></category></item><item><title><![CDATA[显示动态gif图片]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/23765543</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/23765543</guid><author>end_ing</author><pubDate>Tue, 15 Apr 2014 15:57:52 +0800</pubDate><description><![CDATA[#define TIMER_FIR 1
#define TIMER_SEC 2
//两个窗口，分别显示静态的gif，和动态的gif
BOOL CALLBACK GifDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{	
	PAINTSTRUCT ps;
	HDC hdc;
	HBRUSH hBrush, hOldbrus]]></description><category></category></item><item><title><![CDATA[char型IP和2进制IP互转]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/21005653</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/21005653</guid><author>end_ing</author><pubDate>Tue, 11 Mar 2014 12:38:43 +0800</pubDate><description><![CDATA[int WriteConfig(HWND hwnd)
{
	
	HWND hwndIP;
	ofstream outFile;
	char szFilePath[MAX_PATH] = "\0";   //配置文件路径
	char szFileName[MAX_PATH] = "ini.cfg";  //文件名
	char *pFile;
	char szIP[MAX_PATH] = "\0"; ]]></description><category></category></item><item><title><![CDATA[判断多个IP是否合法]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/20472807</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/20472807</guid><author>end_ing</author><pubDate>Tue, 04 Mar 2014 17:13:22 +0800</pubDate><description><![CDATA[BOOL GetIPAddress(HWND hwnd)
{

	HWND hwndIP;
	char str[MAX_PATH] = "\0";
	int iLength;
	//取得IP地址
	hwndIP = GetDlgItem(hwnd, IDE_IPEDIT);
	iLength = GetWindowTextLength(hwndIP);
	GetWindowTextA(hwndIP]]></description><category></category></item><item><title><![CDATA[Visual Studio 调试功能（四）]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19981987</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19981987</guid><author>end_ing</author><pubDate>Wed, 26 Feb 2014 15:29:08 +0800</pubDate><description><![CDATA[我的上篇文章《Vistual Studio原生开发的10个调试技巧》引发了很多人的兴趣，所以我决定跟大家分享更多的调试技巧。接下来你又能看到一些对于原生应用程序的很有帮助的调试技巧（接着上一篇文章来编号）。这些技巧需要应用在Vistual
 Studio 2005 或者更新的版本中（当然也有一些适用于旧版本）。如果你能阅读本文中推荐的一些相关文章，就可以知道每一个技巧的更多信息。

11. ]]></description><category></category></item><item><title><![CDATA[Visual Studio 调试功能（三）]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19981359</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19981359</guid><author>end_ing</author><pubDate>Wed, 26 Feb 2014 15:20:44 +0800</pubDate><description><![CDATA[最近碰巧读了Ivan Shcherbakov写的一篇文章，《11个强大的Visual Studio调试小技巧》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧，但是还有其他一些同样有用的技巧。我整理了一些Visual
 Studio（至少在VS 2008下）原生开发的调试技巧。（如果你是工作在托管代码下，调试器会有更多的特性，在CodeProject中有介绍它们的文章），下面是]]></description><category></category></item><item><title><![CDATA[Visual Studio 调试功能（二）]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19979873</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19979873</guid><author>end_ing</author><pubDate>Wed, 26 Feb 2014 14:58:18 +0800</pubDate><description><![CDATA[简介

调试是软件开发周期中很重要的一部分。它具有挑战性，同时也很让人疑惑和烦恼。总的来说，对于稍大一点的程序，调试是不可避免的。最近几年，调试工具的发展让很多调试任务变的越来越简单和省时。

这篇文章总结了可能节省你大量时间的11个Visual studio的调试技巧和方法。

1 悬停鼠标查看表达式值



调试是很有挑战性的。比如在函数内逐步运行可以看出哪里出错，查看堆栈]]></description><category></category></item><item><title><![CDATA[Visual Studio 调试功能（一）]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19979413</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19979413</guid><author>end_ing</author><pubDate>Wed, 26 Feb 2014 14:49:55 +0800</pubDate><description><![CDATA[原文出处： 微软互联网开发支持   


Visual Studio 是一个强大的调试工具，里面很多隐藏功能少有人问津，但是在特定场景可以节省你很多时间，本文主要介绍一些Visual Studio调试相关的隐藏功能，欢迎大家补充。

 

运行到光标(Run to cursor)

大多数人用Visual Studio在调试程序的时候先在程序开始的时候设置一个断点，然后依次F10]]></description><category></category></item><item><title><![CDATA[关于进度条的操作]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19978621</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19978621</guid><author>end_ing</author><pubDate>Wed, 26 Feb 2014 14:37:20 +0800</pubDate><description><![CDATA[//设置进度条的颜色
hwndProgress = GetDlgItem(hwnd, IDP_PROGRESS);
SendMessage(hwndProgress, PBM_SETBARCOLOR, NULL, RGB(203,221,241));
SendMessage(hwndProgress, PBM_SETBKCOLOR, NULL, RGB(136,167,196));  //进度条背]]></description><category></category></item><item><title><![CDATA[常用的类型转换]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19408517</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19408517</guid><author>end_ing</author><pubDate>Tue, 18 Feb 2014 14:44:37 +0800</pubDate><description><![CDATA[都是自己在项目中需要经常用到的：
uint64_t 转换 DWORD

//file size*****64位转换为高低32位
findData.nFileSizeLow = 0xffffffff & (FileSize);
findData.nFileSizeHigh = 0xffffffff &(FileSize >> 32);
utime_t 转换 FILETIME 结构
//cr]]></description><category></category></item><item><title><![CDATA[设置windows磁盘图标]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19408159</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19408159</guid><author>end_ing</author><pubDate>Tue, 18 Feb 2014 14:16:44 +0800</pubDate><description><![CDATA[分享一段自己写的利用注册表修改磁盘图标：
BOOL SetDiskIcon()
{
	HKEY  hKey; 
	WCHAR szIconPath[MAX_PATH] = L"F:\\ss.ico"; 
	WCHAR szKey[MAX_PATH] = L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\DriveIcons\\Y\]]></description><category></category></item><item><title><![CDATA[显示计算机特殊文件夹]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19342557</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19342557</guid><author>end_ing</author><pubDate>Mon, 17 Feb 2014 17:00:43 +0800</pubDate><description><![CDATA[很多时候“我的文档”位置经常被人移到D盘，如下是获取“我的文档”路径：

#include "stdafx.h"
#include windows.h>
#include shlobj.h>
#pragma comment( lib, "shell32.lib")
#include iostream>

int main(int argc, char* argv[])
{]]></description><category></category></item><item><title><![CDATA[vc添加自定义资源，并创建显示flash控件]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19332717</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19332717</guid><author>end_ing</author><pubDate>Mon, 17 Feb 2014 13:33:14 +0800</pubDate><description><![CDATA[自己在项目里写的一段代码，把vc自定义资源写入文件，顺便显示flash控件
BOOL CreateFlash(HWND hDlg)
{
	char szResPath[MAX_PATH] = "\0";
	HRSRC hRsrc;       //资源句柄
	HGLOBAL hGlobal;   //加载资源的数据句柄
	LPVOID lp;         //资源在内存的入口地址
	HAN]]></description><category></category></item><item><title><![CDATA[windows注册表 api]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19332567</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19332567</guid><author>end_ing</author><pubDate>Mon, 17 Feb 2014 13:17:15 +0800</pubDate><description><![CDATA[注册表的操作，API为我们提供了大约25个函数。他提供了对注册表的读取，写入，删除，以及打开注册表及键值时所有函数，并且可以达到对注册表的备份，连接和对远端注册表进行查看等等。注册表对整个系统十分重要，你在进行操作时，一定要先考虑清楚。这些函数有： 
RegCloseKey RegConnectRegistry  RegCreateKey  RegCreateKeyEx  RegDeleteKe]]></description><category></category></item><item><title><![CDATA[windows API 创建系统托盘图标]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19168679</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19168679</guid><author>end_ing</author><pubDate>Thu, 13 Feb 2014 17:44:20 +0800</pubDate><description><![CDATA[系统托盘在我们使用的程序中很普遍，下面我们来看一个很不错的例子，使用Win32 API实现，对理解系统托盘有些帮助。
#include 
#define IDR_PAUSE 12
#define IDR_START 13
/*
#include 
#pragma   comment(lib,   "shell32.lib") 
*/
LPCTSTR szAppName = TEXT("服务程序"]]></description><category></category></item><item><title><![CDATA[BYTE,WORD,DWORD的大小及一些特殊的"高低位宏"]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19160269</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19160269</guid><author>end_ing</author><pubDate>Thu, 13 Feb 2014 14:22:19 +0800</pubDate><description><![CDATA[一、定义

在VC6.0的Microsoft Visual Studio/VC98/Include/windef.h 里，定义了BYTE,WORD,DWORD

typedef unsigned long       DWORD;

typedef unsigned char       BYTE;

typedef unsigned short      WORD;

在Vi]]></description><category></category></item><item><title><![CDATA[ULARGE_INTEGER运算]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19160189</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19160189</guid><author>end_ing</author><pubDate>Thu, 13 Feb 2014 14:21:07 +0800</pubDate><description><![CDATA[在调用GetDiskFreeSpaceEx()获取磁盘空间时，由于参数是ULARGE_INTEGER(64位整数)，所以普通的“加减乘除”并不支持(是没有实现)，因此我们采用其他办法来实现，先来看下ULARGE_INTEGER的结构定义：
typedef union _ULARGE_INTEGER {  
  struct {  
    DWORD LowPart;  
    DWORD H]]></description><category></category></item><item><title><![CDATA[FILETIME的使用]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19158743</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19158743</guid><author>end_ing</author><pubDate>Thu, 13 Feb 2014 13:34:29 +0800</pubDate><description><![CDATA[typedef struct _FILETIME {
    DWORD dwLowDateTime;
    DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;

 

typedef struct _SYSTEMTIME {
    WORD wYear;
    WORD wMonth;
    WORD ]]></description><category></category></item><item><title><![CDATA[常用的时间类型转换]]></title><link>https://blog.youkuaiyun.com/end_ing/article/details/19158511</link><guid>https://blog.youkuaiyun.com/end_ing/article/details/19158511</guid><author>end_ing</author><pubDate>Thu, 13 Feb 2014 13:27:41 +0800</pubDate><description><![CDATA[在程序开发过程中不断会碰到不同的数据间的转换,在这里做一个总结:
一.时间类型间的转换:
1.time_t 转 FILETIME
 FILETIME ft;
 LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000;
 ft.dwLowDateTime = (DWORD) ll;

 ft.dwHighDateTime]]></description><category></category></item></channel></rss>