<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sunflower_della的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sunflower_della</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sunflower_della]]></copyright><item><title><![CDATA[C++以服务形式启动一个进程，需要关注的点]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/130708011</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/130708011</guid><author>sunflower_della</author><pubDate>Tue, 16 May 2023 16:46:27 +0800</pubDate><description><![CDATA[session0， 服务启动，安全描述符，CreateProcessAsUser ，服务访问注册表]]></description><category></category></item><item><title><![CDATA[zeroconf局域网零配置网络服务规范学习记录]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/125736884</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/125736884</guid><author>sunflower_della</author><pubDate>Wed, 13 Jul 2022 10:51:14 +0800</pubDate><description><![CDATA[服务端带上自己的IP地址和port，注册服务；客户端发现服务后，获取服务端的IP地址和port，后面就可以自由实现进行TCP、Http、websocket等通信了。]]></description><category></category></item><item><title><![CDATA[原生duilib库重写lable控件，实现文字跑马灯滚动显示]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/124848052</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/124848052</guid><author>sunflower_della</author><pubDate>Thu, 19 May 2022 09:57:58 +0800</pubDate><description><![CDATA[原生duilib库重写lable控件，实现文字跑马灯滚动显示。附加duilib添加一个自定义控件的完整过程。]]></description><category></category></item><item><title><![CDATA[服务启动进程下的跨进程事件Event问题]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/124760606</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/124760606</guid><author>sunflower_della</author><pubDate>Fri, 13 May 2022 22:24:22 +0800</pubDate><description><![CDATA[CreateEvent事件命名问题， 和服务的方式创建Event时，访问权限的问题]]></description><category></category></item><item><title><![CDATA[Windows下录音功能WareIn实现（含死锁破解、检测外部输入设备更改和重启录音服务）]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/105849693</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/105849693</guid><author>sunflower_della</author><pubDate>Fri, 13 May 2022 21:36:36 +0800</pubDate><description><![CDATA[Windows下系统录音功能WareIn实现（含死锁破解、检测外部输入设备更改和重启录音服务）]]></description><category></category></item><item><title><![CDATA[nng 服务器底层给管道设置安全描述符，开启listen，实现与chrome跨进程通信]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/124759402</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/124759402</guid><author>sunflower_della</author><pubDate>Fri, 13 May 2022 21:31:56 +0800</pubDate><description><![CDATA[nng服务端设置安全描述符，开启listen，实现与chrome跨进程通信]]></description><category></category></item><item><title><![CDATA[STL的内存分配器]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/90369952</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/90369952</guid><author>sunflower_della</author><pubDate>Tue, 13 Aug 2019 10:40:20 +0800</pubDate><description><![CDATA[一、C++对象内存分配new和释放delete

new 关键字，在创建对象时，先调用operator new（该函数底层又调用了malloc）分配内存，再调用placement new 去调类的构造函数(如果有构造函数)。

delete关键字，在销毁对象时，先调用函数的析构函数，再调用operator delete释放内存。

在STL中，创建时：先调用alloc:allocate()去分配内...]]></description><category></category></item><item><title><![CDATA[字节序（大小端）理解]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/90439935</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/90439935</guid><author>sunflower_della</author><pubDate>Wed, 22 May 2019 14:26:02 +0800</pubDate><description><![CDATA[一、概念

字节序，就是 大于一个字节类型的数据在内存中的存放顺序。是在跨平台和网络编程中，时常要考虑的问题。

二、分类

字节序经常被分为两类：

1.Big-Endian（大端）：高位字节排放在内存的低地址端，低位字节排放在内存的高地址端。

2.Little-Endian（小端）：低位字节排放在内存的低地址端，高位字节排放在内存的高地址端。

三、高低地址与高低字节

高低地址：

C程...]]></description><category></category></item><item><title><![CDATA[JAVA与C++ 语法差异]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/88656545</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/88656545</guid><author>sunflower_della</author><pubDate>Thu, 16 May 2019 15:31:31 +0800</pubDate><description><![CDATA[一、基础类型

java中8种基础类型：

1. byte数据类型是8位、有符号的，以二进制补码表示的整数，默认值为0

   表达范围是：-128（-2^7） ~ 127（2^7-1）

   取值范围已经定义在包中：Byte.SIZE，Byte.MIN_VALUE，Byte.MAX_VALUE

2.short数据类型是16位、有符号的以二进制补码表示的整数，默认值为0

...]]></description><category></category></item><item><title><![CDATA[MFC对话框中使用GDI画二维码]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/89924608</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/89924608</guid><author>sunflower_della</author><pubDate>Tue, 07 May 2019 18:06:18 +0800</pubDate><description><![CDATA[在对话框中添加 WM_PAINT的相应消息，

具体函数实现，如下：


void CTaskRewardDlg::OnPaint()
{
	CPaintDC dc(this); // device context for painting
	// TODO: 在此处添加消息处理程序代码
	if (m_bDataEncoded)
	{
		int nBmpWidth = pQR_Encode-&g...]]></description><category></category></item><item><title><![CDATA[STL算法 —— 求和：accumulate]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/89883458</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/89883458</guid><author>sunflower_della</author><pubDate>Mon, 06 May 2019 15:09:53 +0800</pubDate><description><![CDATA[转载来源：https://www.cnblogs.com/yiranlaobaitu/p/3918330.html



该算法在numeric头文件中定义。#include &lt;numeric&gt;

假设vec是一个int型的vector对象，下面的代码：


//sum the elements in vec starting the summation with the value...]]></description><category></category></item><item><title><![CDATA[STL中resize()与reserve()的区别]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/89874063</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/89874063</guid><author>sunflower_della</author><pubDate>Mon, 06 May 2019 09:22:01 +0800</pubDate><description><![CDATA[首先了解2个概念：

size指容器当前拥有的元素个数，

capacity则指容器在必须分配新存储空间之前可以存储的元素总数，即预分配存储空间的大小。



vector的存放有3种

1.普通：vecotr&lt;int&gt; V1;

for(int i = 0; i &lt; 100; ++i)

{

 V1.push_back(1);

}

效率最低。每push_ba...]]></description><category></category></item><item><title><![CDATA[调用DLL文件及函数]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/82663848</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/82663848</guid><author>sunflower_della</author><pubDate>Wed, 12 Sep 2018 16:48:31 +0800</pubDate><description><![CDATA[继上一步创建了Audit_ChargeSystem_GLWAPI.dll后，下一步开始测试dll的调用及功能

上一步创建dll的步骤，链接如下https://blog.youkuaiyun.com/sunflower_della/article/details/82663154

在解决方案中继续创建一个win32控制台工程，工程名为TestDll，会自动生成一个TestDll.cpp的文件

Step 1...]]></description><category></category></item><item><title><![CDATA[WIN32控制台生成DLL]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/82663154</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/82663154</guid><author>sunflower_della</author><pubDate>Wed, 12 Sep 2018 16:29:02 +0800</pubDate><description><![CDATA[Step 1：VS工具创建一个win32 Project 项目，application type 选择 dll，点击确认，会自动创建工程（工程名win32DLLTest）。

Step 2：创建好的工程会自动生成dllmain.cpp、win32DLLTest.cpp等文件。工程中创建新文件，类型选择def，名字为dllmain

Step 3：在dllmain.cpp中实现函数功能，导出函数名为...]]></description><category></category></item><item><title><![CDATA[VS资源管理器添加自定义类型的资源文件，且读取资源文件到内存中]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/79970243</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/79970243</guid><author>sunflower_della</author><pubDate>Tue, 17 Apr 2018 11:39:15 +0800</pubDate><description><![CDATA[需求描述：    借助一个打包工具，指定源文件 和 目标文件路径，用生成事件的方式，每次在VS编译之前执行，生成资源文件包resourse.g2xp（包含了项目中的所有.png图片和xml等资源文件）。    将资源文件包resourse.g2xp加载到项目中，读取文件数据到内存，方便程序在运行中加载包中的图片等资源。具体方法：一、预生成事件项目 —&amp;gt; 配置属性 —&amp;gt;生成事件 —&amp;gt...]]></description><category></category></item><item><title><![CDATA[MFC对话框加载图片资源作为背景]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/79708955</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/79708955</guid><author>sunflower_della</author><pubDate>Tue, 27 Mar 2018 10:36:19 +0800</pubDate><description><![CDATA[原运行效果图：=================================我是分割线==================================方法一：1。 .h文件中，添加CBrush m_brush;	// 背景添加图片2. .cpp文件OnInitDialog()中，添加// 窗口背景为图片
CBitmap bmp;  
bmp.LoadBitmap(IDB_BITMAP3);...]]></description><category></category></item><item><title><![CDATA[HWND_BROADCAST广播消息]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/79670550</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/79670550</guid><author>sunflower_della</author><pubDate>Fri, 23 Mar 2018 17:49:49 +0800</pubDate><description><![CDATA[之前的一个小需求：处于同一台电脑的进程A，要给进程B发数据。但是进程B的主窗口在创建时，没有指定类名，也没有指定窗口名，所以无法通过::FindWindow(）来获得窗口句柄，从而发消息。后来解决办法是通过HWND_BROADCAST广播消息。发送方：首先，注册消息const UINT WM_WSW_ShowQRCode = ::RegisterWindowMessage(_T(&quot;WSW_Show...]]></description><category></category></item><item><title><![CDATA[进程间通信之共享内存的简单理解]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/79669270</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/79669270</guid><author>sunflower_della</author><pubDate>Fri, 23 Mar 2018 16:58:31 +0800</pubDate><description><![CDATA[之前的一个小需求：处于同一台电脑的进程A，要给进程B发数据。但是进程B的主窗口在创建时，没有指定类名，也没有指定窗口名，所以无法通过::FindWindow(） + ::SendMessage的方式发WM_CopyData的消息。所以最后决定采用进程间通信的方式来解决。模拟了一个服务端和一个客户端，2个进程间采用共享内存进行通信。服务端：为了测试使用，所以写了一个死循环，用断点来控制每次写入的时间...]]></description><category></category></item><item><title><![CDATA[MFC实现背景透明，控件不透明的对话框，且点击图片有事件响应]]></title><link>https://blog.youkuaiyun.com/sunflower_della/article/details/79668165</link><guid>https://blog.youkuaiyun.com/sunflower_della/article/details/79668165</guid><author>sunflower_della</author><pubDate>Fri, 23 Mar 2018 16:07:28 +0800</pubDate><description><![CDATA[最终成果：背景半透明、但是控件不透明的对话框。

对话框上用图片代表功能，当点击图片时，响应点击事件，弹出相对应的对话框。

   对话框固定大小，不可放大缩小，以免影响图片的显示数量。



步骤一：背景透明、控件不透明

  方法一：创建一个对话框CTransparentDlg，在OnInitDialog()函数中，添加代码：

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