<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[how0723的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/how0723</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; how0723]]></copyright><item><title><![CDATA[RTCM—CRC校验]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/106579008</link><guid>https://blog.youkuaiyun.com/how0723/article/details/106579008</guid><author>how0723</author><pubDate>Fri, 05 Jun 2020 21:56:36 +0800</pubDate><description><![CDATA[1、RTCM—CRC校验
RTK信息：


例子：
D3 00 13 3E D0 00 03 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 6D B8 8E
D3：引导字
00 13：计算消息长度：19
6D B8 8E：CRC校验
int table[]={
0x000000, 0x864CFB, 0x8AD50D, 0x0C99F6, 0x93E6E1, 0x15AA1A, 0x1933EC, 0x9F7F17,
0xA1813...]]></description><category></category></item><item><title><![CDATA[websocket 测试]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/106403124</link><guid>https://blog.youkuaiyun.com/how0723/article/details/106403124</guid><author>how0723</author><pubDate>Thu, 28 May 2020 13:45:17 +0800</pubDate><description><![CDATA[#include &lt;boost/algorithm/string.hpp&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;list&gt;

#include &lt;iostream&gt;
#include &lt;websocketpp/config/asio_no_tls.hpp&gt;
#include &lt;websocketpp/server.hpp&gt;


//名称与值数据对
struct Nam.]]></description><category></category></item><item><title><![CDATA[美敦力“开源”设计图和源代码]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/105329585</link><guid>https://blog.youkuaiyun.com/how0723/article/details/105329585</guid><author>how0723</author><pubDate>Tue, 14 Apr 2020 12:34:46 +0800</pubDate><description><![CDATA[在全球战疫中，呼吸机在康复治疗中起着关键作用。如果没有呼吸机的支持，一些患有严重新冠肺炎的患者可能无法幸存。

现在，尽管全球呼吸机企业在加班加点生产，但呼吸机产量仍供不应求。呼吸机告急，给全球抗疫带来巨大挑战。

近日，医疗科技巨头美敦力（Medtronic）在其网站上向全球共享了旗下呼吸机Puritan Bennett™ 560的知识产权：包括设计原理图、生产规范、说明书、软件代码等，允许创新...]]></description><category></category></item><item><title><![CDATA[libyuv对YUV数据处理]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/105257813</link><guid>https://blog.youkuaiyun.com/how0723/article/details/105257813</guid><author>how0723</author><pubDate>Wed, 01 Apr 2020 22:36:43 +0800</pubDate><description><![CDATA[#include &lt;libyuv.h&gt;

// nv21 --&gt; i420
void nv21ToI420(unsigned char* src_nv21_data, int width, int height, unsigned char* src_i420_data)
{
  int src_y_size = width * height;
  int src_u_size...]]></description><category></category></item><item><title><![CDATA[libconfig]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/102877642</link><guid>https://blog.youkuaiyun.com/how0723/article/details/102877642</guid><author>how0723</author><pubDate>Sat, 02 Nov 2019 22:49:42 +0800</pubDate><description><![CDATA[#include &lt;libconfig.h++&gt;
#include &lt;iostream&gt;

using namespace std;

void write_test()
{
  libconfig::Config cfg; //1.声明 Config对象  
  auto&amp; root = cfg.getRoot();
  root.add("name", lib...]]></description><category></category></item><item><title><![CDATA[curl 获取ip]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/100735305</link><guid>https://blog.youkuaiyun.com/how0723/article/details/100735305</guid><author>how0723</author><pubDate>Wed, 11 Sep 2019 14:43:54 +0800</pubDate><description><![CDATA[#include &lt;iconv.h&gt;
#include &lt;curl/curl.h&gt;
#include &lt;nlohmann/json.hpp&gt;
#define GLOG_NO_ABBREVIATED_SEVERITIES
#include &lt;glog/logging.h&gt;

using namespace std;

int char_code_co...]]></description><category></category></item><item><title><![CDATA[C++ static的用法有哪些？]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/100040691</link><guid>https://blog.youkuaiyun.com/how0723/article/details/100040691</guid><author>how0723</author><pubDate>Fri, 23 Aug 2019 16:02:28 +0800</pubDate><description><![CDATA[static的用法有哪些？

（1）修饰局部变量。局部变量的生存期为声明之后，直至当前代码块结束。若使用static声明，该变量将变为静态持续性，存放在静态存储区，存在于整个程序运行周期。同时保证每个进入该代码块，变量保持上一次退出时的值。

（2）修饰全局变量。会改变全局变量的链接性，使用static修饰后，全局变量由外部链接性变为内存链接性，这样其他源文件不能使用extern变量使用该变量，该...]]></description><category></category></item><item><title><![CDATA[boost asio high_resolution_timer 的正确用法]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/96391485</link><guid>https://blog.youkuaiyun.com/how0723/article/details/96391485</guid><author>how0723</author><pubDate>Thu, 18 Jul 2019 00:20:38 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;  
#include &lt;boost/asio.hpp&gt;
#include &lt;boost/thread.hpp&gt;
#include &lt;boost/date_time/posix_time/posix_time.hpp&gt;
using namespace std;

#define NOW_TICKS_US  ch...]]></description><category></category></item><item><title><![CDATA[std::bind 用法]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/93653795</link><guid>https://blog.youkuaiyun.com/how0723/article/details/93653795</guid><author>how0723</author><pubDate>Tue, 25 Jun 2019 20:40:27 +0800</pubDate><description><![CDATA[#include &lt;string&gt;
#include &lt;functional&gt;
#include &lt;iostream&gt;
using namespace std;

class Worker
{
public:
	static Worker* Get()
	{
		static Worker ff;
		return &amp;ff;
	}

	string P...]]></description><category></category></item><item><title><![CDATA[opencv 图像编码]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/89682417</link><guid>https://blog.youkuaiyun.com/how0723/article/details/89682417</guid><author>how0723</author><pubDate>Mon, 29 Apr 2019 20:34:19 +0800</pubDate><description><![CDATA[#include "utils/FileOps.h"
#include "opencv2/opencv.hpp"
using namespace std;

int main()
{
	cv::Mat src = cv::imread("00BB.JPG");
	printf("src.cols=%d rows=%d\n", src.cols, src.rows);
	std::string i...]]></description><category></category></item><item><title><![CDATA[opencv 透视变换]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/89518640</link><guid>https://blog.youkuaiyun.com/how0723/article/details/89518640</guid><author>how0723</author><pubDate>Thu, 25 Apr 2019 16:23:36 +0800</pubDate><description><![CDATA[cv::Point2f src_pts[4];
        src_pts[0] = coners[0];
        src_pts[1] = coners[1];
        src_pts[2] = coners[2];
        src_pts[3] = coners[3];
        cv::Mat _dst(60, 180, CV_8UC1);...]]></description><category></category></item><item><title><![CDATA[C++ STL 实现全排列与组合]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/89517768</link><guid>https://blog.youkuaiyun.com/how0723/article/details/89517768</guid><author>how0723</author><pubDate>Thu, 25 Apr 2019 15:53:16 +0800</pubDate><description><![CDATA[#include &lt;algorithm&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
using namespace std;

template &lt;typename T&gt;
void combine_inner(T &amp;data, int start, int n, int m, 
    int depth, T...]]></description><category></category></item><item><title><![CDATA[跨平台的计时函数 支持win/linux]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/88740670</link><guid>https://blog.youkuaiyun.com/how0723/article/details/88740670</guid><author>how0723</author><pubDate>Fri, 22 Mar 2019 14:38:41 +0800</pubDate><description><![CDATA[源文件


#if defined(WIN32) || defined(_WIN32)   // Windows system specific
#include &lt;windows.h&gt;
#else          // Unix based system specific
#include &lt;sys/time.h&gt;
#endif

__int64 getCount()
...]]></description><category></category></item><item><title><![CDATA[c++ windows api 获取文件版本号]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/88527456</link><guid>https://blog.youkuaiyun.com/how0723/article/details/88527456</guid><author>how0723</author><pubDate>Wed, 13 Mar 2019 10:31:26 +0800</pubDate><description><![CDATA[#include &amp;lt;string&amp;gt;
#include &amp;lt;windows.h&amp;gt;

#pragma comment(lib,&quot;version.lib&quot;)

bool QueryValue(const std::string&amp;amp; ValueName, const std::string&amp;amp; szModuleName,
                std::str...]]></description><category></category></item><item><title><![CDATA[c++ windows 生成 guid]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/88425926</link><guid>https://blog.youkuaiyun.com/how0723/article/details/88425926</guid><author>how0723</author><pubDate>Tue, 12 Mar 2019 18:05:18 +0800</pubDate><description><![CDATA[std::string getNewGuid()
{
    GUID guid;
    ::CoCreateGuid(&amp;amp;guid);

    const int len = 36;
    char dst[len];
    memset(dst, 0, len);
    snprintf(dst, len,
        &quot;%08x%04x%04x%02x%02x%02x%...]]></description><category></category></item><item><title><![CDATA[C++用宏定义实现PROPERTY]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/88324766</link><guid>https://blog.youkuaiyun.com/how0723/article/details/88324766</guid><author>how0723</author><pubDate>Fri, 08 Mar 2019 00:09:32 +0800</pubDate><description><![CDATA[#define PROPERTY_RW(T,var) public: \
void set_##var(const T&amp;amp; _var){m_##var=_var;}\
T get_##var(){return m_##var;}\
private: T m_##var;


class Test
{
public:
	Test();
	~Test();
	PROPERTY_RW(int, ...]]></description><category></category></item><item><title><![CDATA[dll parser]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/85494743</link><guid>https://blog.youkuaiyun.com/how0723/article/details/85494743</guid><author>how0723</author><pubDate>Mon, 31 Dec 2018 23:27:39 +0800</pubDate><description><![CDATA[
#pragma once
#ifndef _DLL_PARSER_H_
#define  _DLL_PARSER_H_
#include &amp;lt;string&amp;gt;
#include &amp;lt;map&amp;gt;
#include &amp;lt;functional&amp;gt;
#include &amp;lt;Windows.h&amp;gt;

class DLLParser
{
public:
    DLLParse...]]></description><category></category></item><item><title><![CDATA[C++简单配置文件程序(基于rapidjson)]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/85339450</link><guid>https://blog.youkuaiyun.com/how0723/article/details/85339450</guid><author>how0723</author><pubDate>Sat, 29 Dec 2018 15:24:45 +0800</pubDate><description><![CDATA[
#include &amp;lt;string&amp;gt;
#include &amp;lt;map&amp;gt;
#include &amp;lt;algorithm&amp;gt;

#ifdef _WIN32
#pragma warning(disable:4996)
#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;io.h&amp;gt;
#include &amp;lt;shlwapi.h&amp;gt;
#pragm...]]></description><category></category></item><item><title><![CDATA[rapidjosn 使用]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/85114132</link><guid>https://blog.youkuaiyun.com/how0723/article/details/85114132</guid><author>how0723</author><pubDate>Thu, 20 Dec 2018 11:00:08 +0800</pubDate><description><![CDATA[    std::string output;
    readFileContent(&quot;dotline.coh&quot;, output);
    printf(&quot;%d\n&quot;, output.size());
    
    Document doc;
    doc.Parse(output.c_str());
    bool IsObject=doc.IsObject();
    auto ...]]></description><category></category></item><item><title><![CDATA[base64编解码]]></title><link>https://blog.youkuaiyun.com/how0723/article/details/85069149</link><guid>https://blog.youkuaiyun.com/how0723/article/details/85069149</guid><author>how0723</author><pubDate>Tue, 18 Dec 2018 16:41:47 +0800</pubDate><description><![CDATA[
#include &amp;lt;string&amp;gt;

void base64Decode(const std::string &amp;amp;input, std::string &amp;amp;output)
{
    //解码表
    const char DecodeTable[] =
    {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...]]></description><category></category></item></channel></rss>