<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JamesWu9527的博客]]></title><description><![CDATA[怕什么前途未知，进一寸有进一寸的欢喜]]></description><link>https://blog.youkuaiyun.com/Wuzm_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Wuzm_]]></copyright><item><title><![CDATA[nim_duilib中编译将资源打包到exe]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/121955192</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/121955192</guid><author>Wuzm_</author><pubDate>Wed, 15 Dec 2021 16:18:38 +0800</pubDate><description><![CDATA[顾名思义 就是将xml文件打包 作为资源加载到exe中

方法：

1、新建一个nim_duilib工程后，新建一个资源文件 也就是rc文件 熟悉VC的同学应该知道怎么操作

2、 根据nim_duilib中的base工程可知

// Release 模式下使用资源中的压缩包作为资源

// 资源被导入到资源列表分类为 THEME，资源名称为 IDR_THEME

// 如果资源使用的是本地的 zip 文件而非资源中的 zip 压缩包

// 可以使用 OpenResZip 另一个重载函数打开本地的资源压缩]]></description><category></category></item><item><title><![CDATA[编译可用的支持https的libcurl]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/121954856</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/121954856</guid><author>Wuzm_</author><pubDate>Wed, 15 Dec 2021 16:07:41 +0800</pubDate><description><![CDATA[关键的原材料

编译步骤：

https://www.cnblogs.com/zzugyl/p/5037152.html



下载openssl的以前的版本

OpenSSL官方下载 - 码客



下载zlib的以前的版本

Index of /fossils



下载curl的以前的版本

curl downloads



修复一些使用libcurl库遇到的问题

编译静态的 支持https协议的 libcurl 库无法加载问题 - xzh1993 - 博客园





//验证编译的libcur]]></description><category></category></item><item><title><![CDATA[nim_duilib加libvlc制作简单播放器]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/121556632</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/121556632</guid><author>Wuzm_</author><pubDate>Fri, 26 Nov 2021 14:17:24 +0800</pubDate><description><![CDATA[关于云信duilib+libvlc制作播放器的注意事项]]></description><category></category></item><item><title><![CDATA[在nim_duilib中使用cef控件知识点]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/119678795</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/119678795</guid><author>Wuzm_</author><pubDate>Fri, 13 Aug 2021 16:46:06 +0800</pubDate><description><![CDATA[这里补充一点，关于cef控件调用原生的JS函数，看了下 cef_control_base.h 这个头文件，发现关于调用JS的方式 这里只是描述直接 调用一个前端注册好的函数，那么调用普通的JS函数该如何实现，这是这篇文章的主要重点；

参照：

https://www.cnblogs.com/chechen/p/6138167.html

根据这篇博客所描述


C++调用JS函数相对简单多了，因为CEF有接口可以直接使用CefFrame::ExecuteJavaScript，看看注释:


///
  /]]></description><category></category></item><item><title><![CDATA[记录下最近win端项目的几个小知识点]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/119455867</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/119455867</guid><author>Wuzm_</author><pubDate>Fri, 06 Aug 2021 15:45:21 +0800</pubDate><description><![CDATA[有部分是参照网上给出的例子

1. 创建无任务栏图标的应用程序

创建无任务栏显示的应用（通过代码删除任务栏图标） 适用于多个窗口的业务场景


BOOL xxxxForm::HideTaskBar(HWND hwnd, BOOL bShow)
{
	HRESULT hr;
	ITaskbarList* pTaskbarList;
	hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
		IID_ITaskbarList,]]></description><category></category></item><item><title><![CDATA[PJSIP初体验]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/109079588</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/109079588</guid><author>Wuzm_</author><pubDate>Wed, 14 Oct 2020 17:49:07 +0800</pubDate><description><![CDATA[最近研究了下PJSIP这个强大的VOIP开源库，简单的来记录下遇到一些问题和解决思路，最后附上完整的工程代码供参考

功能：

1.实现用户的注册

2.实现收发短信

3.实现通话功能



踩的坑

1.默认的UDP的端口是5060这个需要改变，需要使用代理设置

2.发送短信编码格式乱码 需要进行转码

3.通话没有声音 是没有添加 媒体改变的回调函数



直接放上代码了


/*
2020年10月14日 10:45:31
初始化UA
*/

#include &lt;pjsua-lib/pjs..]]></description><category></category></item><item><title><![CDATA[记录一个小项目中运用的知识点]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/109024759</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/109024759</guid><author>Wuzm_</author><pubDate>Mon, 12 Oct 2020 12:11:58 +0800</pubDate><description><![CDATA[1.在新的VS版本中，会对老的一些函数做安全验证，导致编译报错，解决方案

在该文件的最上方 加上#define _CRT_SECURE_NO_WARNINGS



2.对于某个应用，不需要弹出黑窗口，而是在后台静默运行

修改链接的部分，或者在代码中 添加#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )



3.对于互斥量的使用，一个程序只允许在当前的机器上打开一次，不能同时打开两个


...]]></description><category></category></item><item><title><![CDATA[学习QT的小例子_时钟]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/108799925</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/108799925</guid><author>Wuzm_</author><pubDate>Fri, 25 Sep 2020 16:59:50 +0800</pubDate><description><![CDATA[实现效果：



结合QT官方给的例子，加入一个秒针

下面附上代码：


void AnalogClockWindow::render(QPainter *p)
{
    //三个指针的形状和颜色定义
    static const QPoint hourHand[3] = {
        QPoint(7, 8),
        QPoint(-7, 8),
        QPoint(0, -40)
    };

    static const QPoint minuteHand[3]]]></description><category></category></item><item><title><![CDATA[SOUI的一个动态创建控件的小例子]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/107544852</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/107544852</guid><author>Wuzm_</author><pubDate>Thu, 23 Jul 2020 18:48:07 +0800</pubDate><description><![CDATA[涉及知识点：

获取可用的屏幕个数以及分辨率
	SOUI中的线性布局的使用
	SOUI中的动态插入xml的方法（也就是动态的创建控件）
	对动态创建出来的控件，进行一个点击事件的注册
目的：获取屏幕个数，生成对应的按钮，点击对应的按钮，设置窗体到对应的屏幕上；

和上一个例子的基础代码一致 这边直接上代码


void CMainDlg::OnGetScreenInfo()
{
	EnumDisplayMonitors(NULL, NULL, &amp;MonitorEnumProc, reinterpre]]></description><category></category></item><item><title><![CDATA[记录类似窗口自动移动，补齐前面的位置demo]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/107494733</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/107494733</guid><author>Wuzm_</author><pubDate>Tue, 21 Jul 2020 18:25:26 +0800</pubDate><description><![CDATA[应用场景：

类似多个标签窗口并列，一个窗口被移动到另外一个地方去了，后面的则往前补齐的功能

效果：



实现的点，主要有两个

1.使用线性布局：layout="hbox"

2.改变窗口的size属性，设置为0，0

xml的布局


&lt;SOUI name="mainWindow" title="@string/title" bigIcon="ICON_LOGO:32" smallIcon="ICON_LOGO:16" width="620" height="400" margin="5,5,]]></description><category></category></item><item><title><![CDATA[python处理wav数据]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/106710317</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/106710317</guid><author>Wuzm_</author><pubDate>Fri, 12 Jun 2020 10:24:08 +0800</pubDate><description><![CDATA[最近需要将.wav文件中的数据抽离出来 效果是：





使用python中的wave模块

具体的代码如下：


'''
2020-6-1
从wav文件中剥离出pcm数据
将数据转换为十六进制输出

wave的操作说明

'''

import wave

filename = "C:\\Users\\JamesWu\\Desktop\\wave\\female.wav"
f = wave.open(filename,'rb')
params = f.getparams()

print("wav p.]]></description><category></category></item><item><title><![CDATA[linux 下的TCP 和IP demo]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/106016243</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/106016243</guid><author>Wuzm_</author><pubDate>Sat, 09 May 2020 12:06:21 +0800</pubDate><description><![CDATA[自己的一个代码仓库

https://github.com/JamesWu9527/linux_c_study.git
]]></description><category></category></item><item><title><![CDATA[记录一个bug 将本地时间转换为UTC时间]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/105704334</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/105704334</guid><author>Wuzm_</author><pubDate>Thu, 23 Apr 2020 12:09:54 +0800</pubDate><description><![CDATA[这里获取时区可以使用函数GetTimeZoneInformation


    //获取当前系统的时区
	TIME_ZONE_INFORMATION tm;
	GetTimeZoneInformation(&amp;tm);
	m_TimeZone = tm.Bias/(-60);

关于不同时区 对数据操作
例如我在东八区，需要将时间转换为UTC的格式
那么对应的就需要减去8小时，那么对应的...]]></description><category></category></item><item><title><![CDATA[C#入门记录10]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/104818072</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/104818072</guid><author>Wuzm_</author><pubDate>Thu, 12 Mar 2020 14:14:23 +0800</pubDate><description><![CDATA[异常处理

直接上代码


/*
2020年3月7日15:42:33
异常处理
try...catch语句

*/
using System;

namespace ConsoleApp10
{
    class Program
    {
        static void Main(string[] args)
        {

            testError();


...]]></description><category></category></item><item><title><![CDATA[C#入门记录09]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/104818015</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/104818015</guid><author>Wuzm_</author><pubDate>Thu, 12 Mar 2020 14:12:02 +0800</pubDate><description><![CDATA[面向对象高级编程
  接口的概念和声明
  接口是一种用来定义程序的协议，它描述可属于任何类或结构的一组相关行为。接口可由方法、属性、事件和索引器 这4种成员类型任何组合构成
    但不能包含字段
接口具有以下特征：
  1.接口类似于抽象基类：继承接口的任何非抽象类型都必须为实现接口的所有成员
  2.不能直接实例化接口
  3.接口可以包含事件、索引器、方法和属性...]]></description><category></category></item><item><title><![CDATA[C#入门记录08]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/104817986</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/104817986</guid><author>Wuzm_</author><pubDate>Thu, 12 Mar 2020 14:10:28 +0800</pubDate><description><![CDATA[结构和类

结构：
  在结构声明中，除非字段被声明为const或者static， 否则无法初始化
  定义： 结构修饰符 struct 结构名{ }
  不支持继承


  类的定义：修饰符 class 类名
类的修饰符：
  new : 仅允许在嵌套类声明时使用，表明类中隐藏了由基类中继承而来的、与基类中同名的成员
  public: 不限制对该类的访问
  p...]]></description><category></category></item><item><title><![CDATA[C#入门记录07]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/104817900</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/104817900</guid><author>Wuzm_</author><pubDate>Thu, 12 Mar 2020 14:07:35 +0800</pubDate><description><![CDATA[第八章：
  属性和方法

  属性具有以下几个特点
  1.属性可以向程序中添加元数据
  2.程序可以使用反射检查自己的元数据
  3.通常使用属性与COM交互


方法的分类
  1.静态方法
    定义方式：public static 类型 函数名
    使用方法：类名.方法名

  2.非静态方法
    定义方式: 是对类给定的某...]]></description><category></category></item><item><title><![CDATA[C#入门记录06]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/104812560</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/104812560</guid><author>Wuzm_</author><pubDate>Thu, 12 Mar 2020 10:01:18 +0800</pubDate><description><![CDATA[这一部分主要包括：

流程控制语句，数组集合，哈希表

直接上代码：


/*
 2020年3月5日15:41:03
 流程控制语句
 数组和集合
*/

using System;
using LoopTest;
using Array2;
using System.Collections;       //包含ArrayList
using HaXi;

namespace ConsoleAp...]]></description><category></category></item><item><title><![CDATA[C#入门记录05]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/104812476</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/104812476</guid><author>Wuzm_</author><pubDate>Thu, 12 Mar 2020 09:56:19 +0800</pubDate><description><![CDATA[这一部分 主要记录 C#中字符 和 字符串的相关操作

直接看代码吧，代码比较清晰


/*
2020-3-5 09:39:13
C# 中的字符类型
    Char在C#中表示一个Unicode字符
    关于字符类型判断的函数
    IsLetter 判断是否为字母
    IsDigit  判断是否为数字
    IsLetterOrDigit 判断是否为数字或字母
    IsLow...]]></description><category></category></item><item><title><![CDATA[C#入门记录04]]></title><link>https://blog.youkuaiyun.com/Wuzm_/article/details/104812402</link><guid>https://blog.youkuaiyun.com/Wuzm_/article/details/104812402</guid><author>Wuzm_</author><pubDate>Thu, 12 Mar 2020 09:53:24 +0800</pubDate><description><![CDATA[这一部分主要记录下运算符相关的东西


/*
 2020年3月4日22:28:49
 运算符相关的东西
 使用Math来进行相关的数据计算
 */

using System;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            ...]]></description><category></category></item></channel></rss>