<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Syee001的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Syee001</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Syee001]]></copyright><item><title><![CDATA[C++调试输出]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/77804179</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/77804179</guid><author>Syee001</author><pubDate>Sat, 02 Sep 2017 22:00:42 +0800</pubDate><description><![CDATA[void  EngineTrace(LPCTSTR pstrFormat, ...) {

#ifdef _DEBUG
	TCHAR szBuffer[300] = { 0 };
	va_list args;
	va_start(args, pstrFormat);
	::wvnsprintf(szBuffer, lengthof(szBuffer) - 2, pstrFormat, args);]]></description><category></category></item><item><title><![CDATA[C++ 嵌入汇编 获取CPU信息]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76862088</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76862088</guid><author>Syee001</author><pubDate>Mon, 07 Aug 2017 22:02:53 +0800</pubDate><description><![CDATA[#include "windows.h" 
#include "iostream"
#include "string"

using namespace std;

//用来存储信息
DWORD deax;
DWORD debx;
DWORD decx;
DWORD dedx;

void ExeCPUID(DWORD veax)//初始化CPU
{
__asm
{
   mov eax,veax]]></description><category></category></item><item><title><![CDATA[获取cpu频率]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76862018</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76862018</guid><author>Syee001</author><pubDate>Mon, 07 Aug 2017 21:57:52 +0800</pubDate><description><![CDATA[int CPU_Frequency(void) //MHz 
{
	LARGE_INTEGER CurrTicks, TicksCount;
	__int64 iStartCounter, iStopCounter;
	DWORD dwOldProcessP = GetPriorityClass(GetCurrentProcess());  //纪录和提高优先级
	DWORD dwOldThrea]]></description><category></category></item><item><title><![CDATA[C/C++获取操作系统、CPU、内存信息]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76738058</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76738058</guid><author>Syee001</author><pubDate>Sun, 06 Aug 2017 08:51:30 +0800</pubDate><description><![CDATA[操作系统和内存信息在windows下通过系统的API来获取，CPU信息则需要需要通过底层CPUID指令取得
#include    
#include   
#include     
  
#pragma warning(disable: 4996) // avoid GetVersionEx to be warned  
  
// ***** global macros ***** // ]]></description><category></category></item><item><title><![CDATA[C++ 实时获取CPU使用率的类 (源码)]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76738049</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76738049</guid><author>Syee001</author><pubDate>Sun, 06 Aug 2017 08:49:03 +0800</pubDate><description><![CDATA[说明：1。内部使用timer定时器，自动刷新，使外部使用十分明了；2。主程序要有消息循环
[cpp] view plain copy print?
//=========================================================  
//  
// Copyright (c) 2000-2004  iWise Technologies，Co. Ltd.  
]]></description><category></category></item><item><title><![CDATA[Windows下用C语言获取系统的CPU利用率、内存使用率、硬盘使用率等-转载]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76738030</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76738030</guid><author>Syee001</author><pubDate>Sun, 06 Aug 2017 08:43:02 +0800</pubDate><description><![CDATA[最近在做一个网管软件用C语言获取的系统的一些参数，其中包括系统时间，系统运行时间，系统版本，CPU利用率，内存使用率，硬盘使用率，CPU风扇转速等参数，整理代码如下：
#include 
#include 
#include
#include 

#define DIV 1024
#define WIDTH 7
#define GB(x) (((x).HighPart << 2) + ((DWO]]></description><category></category></item><item><title><![CDATA[C++API创建Win32窗口]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76595550</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76595550</guid><author>Syee001</author><pubDate>Wed, 02 Aug 2017 19:37:16 +0800</pubDate><description><![CDATA[#include "stdafx.h"
#include 
#include 
//窗口过程函数 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 


int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTA]]></description><category></category></item><item><title><![CDATA[C++Buffer缓冲区-Gh0st远程控制源码摘取]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76221631</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76221631</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 21:05:23 +0800</pubDate><description><![CDATA[/**Gh0st远程控制源码摘取  翻译修改***///缓冲器类  
	class Buffer
	{
	public:
		Buffer(void);
		virtual ~Buffer(void);
		/*函数说明：
		功能 ： 清空缓冲区
		参数 ：
		返回值：
		时间 ：2014/01/26*/
		void ClearBuffer();
		/*函数说明：
		功能 ： 删除缓]]></description><category></category></item><item><title><![CDATA[Winsock完成端口模型(VER1)——I/O Completion Port（转载）]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216590</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216590</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 19:29:02 +0800</pubDate><description><![CDATA[研究了几天IOCP的模型，参考了很多大牛的文章，有了点自己的感觉，于是把心得写下来，算是记录一下成长的过程，也希望用最直观的图的形式让以后的人更直观的明白IOCP的基本原理，其实IOCP有很多实现的方式，先说一下第一种比较基本的ICOP，这种理解之后其他的就很容易理解了。:)

  先看一下我绘制的一个原理图，图应该更容易理解一下，绘制了1个多小时呢，水平有限，高手莫怪。

 

 ]]></description><category></category></item><item><title><![CDATA[使用c++11写个最简跨平台线程池（转载）]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216566</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216566</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 19:26:42 +0800</pubDate><description><![CDATA[为什么需要多线程？

最简单的多线程长啥样？

为什么需要线程池，有什么问题？

实现的主要原理是什么？

 

带着这几个问题，我们依次展开。

1.为什么需要多线程？

    大部分程序毕竟都不是计算密集型的，简单的说，正常情况下，以单线程的模式来写对程序员而言是最舒心的。因为所有的代码都是顺序执行，非常容易理解！函数一级一级往下调用，代码一行一行执行。但是，代码]]></description><category></category></item><item><title><![CDATA[简单c++日志类]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216551</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216551</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 19:25:28 +0800</pubDate><description><![CDATA[/*
简单日志类
*/
#ifndef LOGGER_H_
#define LOGGER_H_
#include 
#include 
#include 
using namespace std;
//日志级别枚举  
typedef enum LogLevel  
{  
    信息 = 0,  //什么都不记录  
    错误,     //只记录严重错误  
    警告,     //]]></description><category></category></item><item><title><![CDATA[c++stack容器介绍]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216538</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216538</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 19:24:12 +0800</pubDate><description><![CDATA[c++stack(堆栈）是一个容器的改编，它实现了一个先进后出的数据结构（FILO）

使用该容器时需要包含#include头文件；

定义stack对象的示例代码如下：

stacks1;

stacks2;

stack的基本操作有：

1.入栈：如s.push(x);

2.出栈:如 s.pop().注意：出栈操作只是删除栈顶的元素，并不返回该元素。

3.访]]></description><category></category></item><item><title><![CDATA[C++实现的Buffer类]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216517</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216517</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 19:21:58 +0800</pubDate><description><![CDATA[转自 http://blog.youkuaiyun.com/athlong0564/article/details/5942351

写C#的同志一定觉得Byte []比C++的 BYTE * 加 Length的方式好的多。一来，只需要一个对象就可以是表示一段字节流，另一方面，由于C#的特性，不需要象C++那样还要记得删除指针。由于我工作中，需要频繁地试用C#和C++，所以写了个C++的类，以便方便地管理]]></description><category></category></item><item><title><![CDATA[SOCKET 封包和拆包]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216501</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216501</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 19:20:15 +0800</pubDate><description><![CDATA[对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.


一.为什么基于TCP的通讯程序需要进行封包和拆包.

TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流]]></description><category></category></item><item><title><![CDATA[c++实现对windwos 下socket 的封装(实现封包及拆包处理)--]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216478</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216478</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 19:18:22 +0800</pubDate><description><![CDATA[SuperSocket.h

#pragma once
#include
#include
#include 
#include "MyThread.h"
#include "SuperThread.h"
using namespace std;
class SuperSocket
{
public:
    typedef struct SockData{
        int id;]]></description><category></category></item><item><title><![CDATA[TCP 组包和拆包算法-转载]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76216134</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76216134</guid><author>Syee001</author><pubDate>Thu, 27 Jul 2017 18:37:41 +0800</pubDate><description><![CDATA[/*************************************
文件名： server.c
TCP 组包和拆包实现算法
 
 
作者:   马中海
QQ:     284358503
Email: zhonghaima001@163.com
*/
#include 
#include 
#include 
#include 
#include 
#include 
 
 
#incl]]></description><category></category></item><item><title><![CDATA[C++日志类]]></title><link>https://blog.youkuaiyun.com/Syee001/article/details/76159245</link><guid>https://blog.youkuaiyun.com/Syee001/article/details/76159245</guid><author>Syee001</author><pubDate>Wed, 26 Jul 2017 18:25:39 +0800</pubDate><description><![CDATA[//Log.h头文件
/*
简单日志类  
*/
#ifndef LOGGER_H_
#define LOGGER_H_
#include 
#include 
#include 
using namespace std;
//日志级别枚举  
typedef enum LogLevel  
{  
	信息 = 0,  //什么都不记录  
	错误,     //只记录严重错误  
	警告,  ]]></description><category></category></item></channel></rss>