- 博客(35)
- 资源 (11)
- 收藏
- 关注
原创 C语言基础备忘录
3、在用 gets() 函数读取字符串的时候,有一些编译器会提示不安全,建议替换为 gets_s() 函数,就是因为 gets() 不能控制读取到的字符串的长度,风险极高。1、C语言的缓冲区会带来一些负面影响。2、scanf的高级用法。
2023-05-17 16:24:27
671
1
原创 Three.js Babylon.js 前端3D引擎区别
Babylon.js 特点:强大的编辑器、强大的节点编辑器、NATIVE 跨平台原生应用部署、支持先进的WEBXR技术。如果你项目必须是webgl的,需要浏览器打开,webgl技术风云录中提到的那些平台都无法满足你的需求,建议用Babylonjs,这是最好的平台,最好的框架。Three.js 特点:如果是webgl开发者,目前毫无头绪,请使用threejs,它是万金油...
2022-05-05 11:10:34
2985
原创 Ubuntu Docker 和 docker-compose安装
一、Ubuntu Docker1.首先确认Ubuntu已安装CURL若未安装可参考Ubuntu 安装 CURL 过程https://blog.youkuaiyun.com/Hilaph/article/details/124271427?spm=1001.2014.3001.55012.使用官方安装脚本自动安装安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun也可以使用国内 daocloud 一键安
2022-04-20 13:32:30
5589
2
原创 VM 安装 Ubuntu 出现 blk update request i/o error 或 rc local installing open vm tools 的错误解决办法
在vmware workstation中安装Ubuntu系统过程中卡在载入界面右键虚拟机编辑设置,看到多了软盘文件autoinst.iso文件,虚拟机安装系统默认自动安装,会在安装系统目录文件中生成**autoinst.iso和autoinst.flp文件引导整个系统自动安装。解决方式,安装前创建好虚拟机后不要选择创建后开启虚拟机那个选项,然后进入安装文件夹下把这这两个文件删了。再次进入虚拟机开启系统就可以了。参考文献:https://blog.youkuaiyun.com/weixin_410887..
2022-04-19 10:34:07
4359
原创 SIP 注册流程 代码实现
sip协议的通信是在应用层,传输层依靠UDP进行传输。注册流程简单来说就是:客户端发送register请求,服务器通过鉴权判断客户端号码是否存在,如果需要密码就回复401 Unauthorized,如果不需要密码就直接回复200 OK,客户端收到鉴权要求后根据401 Unauthorized携带的编号以及加密协议(例如MD5)将密码添加进去,重新发送register,服务器判断正确后回复200 OK,注册成功。代码层面上则是:以C# 使用LumiSoft.Net.SIP 组件为例1、先UDP
2021-02-05 14:29:30
1611
转载 SIP协议 基本流程 及 抓包数据
1、SIP业务基本知识1.1 业务介绍会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始、管理和终止网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个或多个参与者之间的会话。SIP的业务模式是一个点对点协议,其中有两个要素——SIP用户代理和SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP服务器是处理与多个呼叫相关联信令的网络设备。用户代理本身具有一客户机元素(用户代理客户机UAC)和一服务器元素(用户代理服务器UAS)。客户机元素初始呼叫
2021-01-25 19:29:26
7163
原创 解决 github 问题
一、打开代理设置,在连接->局域网设置中,将“自动检测设置”、“使用自动配置脚本”这两个前面的勾选去掉。二、用记事本打开“C:\Windows\System32\drivers\etc”下的hosts,若在此目录下没有hosts,则新建一个hosts文本文件,然后将“.txt”后缀去掉,以记事本方式打开,并将目录下imhosts.sam中的内容拷贝到hosts中。把下面内容拷...
2021-01-25 10:13:47
2273
原创 Visual Studio 生成库、exe文件时 关于 依赖库 和 动态链接与静态链接 生成方式
DLL首先在创建工程后,会出现一个问题,是Debug还是Release,是X86还是X64,X86 和 X64的选择要和调用方所使用的位数相关,否则会出现 “试图加载格式不正确的程序”的问题。在工程的属性中,C/C++ -->运行库 总共有四种:多线程调试(/MTd)、多线程调试DLL(/MDd)、多线程(/MT)、多线程DLL(/MD)调试模式下运行库带d,但发布模式不带。调试与发布的区别在于,发布模式省略了程序的调试信息,简单来说就是删除了调试模式下的用于调试的内容,所以一般情况.
2020-12-25 14:34:13
1257
转载 慎用 strncpy !memcpy strcpy strncpy比较
一、函数说明1、memcpy函数void*memcpy(void *s1, const void *s2, size_t n);说明:函数memcpy从s2指向的对象中复制n个字符到s1指向的对象中。如果复制发生在两个重叠的对象中,则这种行为未定义。返回值:函数memcpy返回s1的值。2、strcpy函数char*strcpy(char *s2, const char *s1);说明:函数strcpy把s1指向的串(包括空字符)复制到s2指向的数组中。...
2020-10-10 11:04:32
404
原创 C 实现 授权 设定授权时间限制 AES算法
一、软件授权的思路主要分为以下步骤1、获得被授权计算机的唯一标识,例如CPU编码、硬盘编码、MAC地址等。2、将标志内容编码为不可被识别的加密数值——注册码。3、授权方将注册码解码。4、在注册码中添加时间限制以及其它携带信息并编码为不可被识别的加密数值——序列号。5、被授权电脑上获得序列号后,将其解码判断标志内容和日期是否符合,并将序列号保存以备以后启动时判断。二、这个步骤中有几个知识点:1、获取唯一标识;2、编码算法;3、将时间等信息添加入注册码中。1和3的解决办法有很多,而2
2020-09-25 17:48:09
2582
原创 C# JAVA 调用 外部DLL库 函数接口 需要使用 回调函数传参时 异常 的解决办法
我所遇到的情况是C#和JAVA在调用我用C写的DLL库中的含有以回调函数作为参数的函数接口时会以外终止报错。最后在网上查找资料发现是因为在生成DLL时缺少了对接口的必要声明。正常的DLL接口函数的声明是在函数前加入__declspec(dllexport)来表明这是对外的接口函数。而当函数中要传递回调函数时,也要对回调函数做贴别的声明_stdcall,如以下示例:typedef int(_stdcall *pfun)(unsigned char*);pfun callFunc;__declsp
2020-09-16 14:13:30
390
原创 Windows UDP recvfrom 不能阻塞 及 bind 报错的解决办法
1、正常来说,UDP的recvfrom默认是阻塞的。可以手动设置是否为阻塞u_long iMODE = 0;//1为非阻塞,0为阻塞ioctlsocket(udp_cliSocket, FIONBIO, &iMODE);//设置recvfrom是否为阻塞ioctlsocket的第一个参数为socket套接字。此处我设置为0,依然会不阻塞。2、如果bind失败了,也会导致recvfrom不阻塞。if (bind(udp_cliSocket, (SOCKADDR*)&
2020-07-09 18:44:15
3582
原创 随意编辑网页内容的简单方法
只需要一行document.body.contentEditable='true';以谷歌浏览器为例:1、打开一个网页2、按F123、选择console在最下面的空行输入document.body.contentEditable='true';并回车4、然后就可以随意对内容进行编辑了...
2020-06-24 16:44:39
7476
原创 windows C 调用音频输出设备 实现播放
在之前有写过一篇 使用C来调用音频输入设备录音:https://mp.youkuaiyun.com/console/editor/html/105217385本次将在调用输入设备的基础上再调用输出设备将录音内容播放出来:主要用到的函数:waveOutGetNumDevs:返回系统中的输出设备数量(可以不用)waveOutGetDevCaps:检查指定输出设备特性(可以不用)waveOutOpen:打开默认的wave设备waveOutPrepareHeader:准备一个波形数据块用于播放wav
2020-06-19 14:23:45
1673
4
原创 Windows 文件名在 Linux 下显示为乱码解决方法 及 GBK 与 UTF-8 编码转换
问题在Windows上文件名的编码为GBK,而在Linux上文件名的编码为UTF-8。所以当在Windows上使用ftp方式从Linux上传下拉时,会导致上传文件名的中文变成了乱码,而下拉时找不到指定文件,解决办法:1、CentOS下 输入yum install convmvconvmv -f gbk -t utf-8 -r --notest /home/如果显示key...
2020-04-17 11:12:45
1455
原创 无法安装以下功能 .net framework 3.5解决办法
1、下载 NET Framework 3.5的安装包2、将下载下来的NetFx3.cab放进 C:\Windows 目录下(不要解压NetFx3.cab)3、打开控制面板 -> 程序 -> 启动或关闭Windows功能 -> 关闭其他.NET Framework服务4、之后 右击开始 -> 点击命令提示符(管理员)5、输入 dism /online /...
2020-04-15 16:30:56
14073
原创 C C++ 调用第三方DLL库失败 LoadLibrary 返回NULL 并报 126 错误 解决办法
在之前有写关于生成dll文件以及调用dll的方法:https://blog.youkuaiyun.com/Hilaph/article/details/104917856而在vs2019新开一个项目并运行调用相关第三方dll时,出现LoadLibrary返回值判断为NULL,使用DWORD a = GetLastError();查看错误代码为126.这个报错一般都是因为找不到dll文件所导致的在网上查...
2020-04-13 11:53:16
7478
3
原创 windows C 调用音频输入设备 实现录音
所用库:#include "mmsystem.h"采集输入设备音频void RecordWave(){ //返回系统中的输入设备数量 int count = waveInGetNumDevs(); printf("\n音频输入数量:%d\n", count); //检查指定输入设备特性 参数:输入设备标识/句柄;结构体指针;结构体大小 WAVEINCAPS waveI...
2020-03-31 10:51:02
1770
原创 Visual studio 使用C语言 生成DLL 文件 并用 C 调用DLL
生成DLL:新建项目-C++-动态链接库(DLL)项目-右键-属性-C/C++预编译头:不使用预编译头。添加相应的.h和.c文件在.h中,对外开放的接口前 加注__declspec(dllexport)调用DLL:将.dll 和 .lib放在与Debug同级目录项目右键-属性-VC++目录-库目录-将.dll和.lib所在文件夹目录写入库目录中...
2020-03-17 12:08:34
8486
原创 Windows C 回调函数的应用
在开发制作SDK时,由于需要不定时的上发一些数据给第三方调用SDK的用户,所以需要用到回调函数来实现。//定义 信号量句柄、全局指针、信号量触发线程HANDLE h_ThreadSem = NULL;unsigned charbuf[100];DWORD WINAPI RevThreadFun(LPVOID);//回调函数void printbuf(unsigned char...
2020-03-16 15:59:09
264
原创 Windows C语言 实现线程同步 互斥量 信号量 及两种的区别
互斥量与信号量实现方法类似:互斥量: HANDLE hMutex = NULL;//在全局中定义一个句柄 hMutex = CreateMutex(NULL,FALSE,NULL); //建立互斥量 if (WaitForSingleObject(hMutex, INFINITE) == WAIT...
2020-03-16 10:34:39
1651
转载 嵌入式 C 面试 考点
1.const的作用是什么?第一,限定一个只读变量(不是常量)。如const double PI=3.14;第二,限定函数参数,如,void function(const char *p)//函数只能读取不能改变其变量p的值2.关键字volatile有什么含意?volatile影响编译器编译的结果,指出,volatile变量是随时可能发生变化的,与volatile变量有关的运算,不要进...
2019-10-30 11:26:16
606
转载 C 复制 连接字符串
原文:https://developers.redhat.com/blog/2019/08/12/efficient-string-copying-and-concatenation-in-c/以下为优快云官方译文:在所有标准C语言<string.h>头文件中声明的字符串处理函数中,最常用的是那些用来复制和连接字符串的函数。这两组函数都将字符从一个对象复制到另一个对象,并且都...
2019-10-10 10:15:20
217
原创 c# WPF 程序窗口根据电脑屏幕的不同尺寸自动切换大小 主窗口显示问题
首先介绍MainWindow.xaml<Window x:Class="Sys.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ...
2019-09-30 16:05:57
2056
原创 c# 串口通信 DataReceived 事件触发方法的使用
DataReceived事件:在接收到了ReceivedBytesThreshold设置的字符个数或接收到了文件结束字符并将其放入了输入缓冲区时被触发。数据接收的方法如果采用轮询的方法比较浪费时间,采用DataReceived事件触发的方法,合理的设置ReceivedBytesThreshold的值,若接收的是定长的数据,则将ReceivedBytesThreshold设为接收数据的长度,若接收数...
2019-09-29 09:58:34
26346
4
原创 Ubuntu 镜像 高速下载地址
ubuntu官方:ubuntu CD镜像:http://releases.ubuntu.com/ubuntu DVD镜像:http://cdimage.ubuntu.com/releases/ubuntu中国版:http://china-images.ubuntu.com/国内镜像(高速):ubuntu 搜狐镜像:http://mirrors.sohu.com/ubuntu-releas...
2019-09-16 10:55:57
2319
原创 C++ 学习路径 面试题 书籍推荐
看到一篇博客“如何成为一名合格的C/C++开发者?”,写的很全面,部分也很深入,对于C++开发入门和进阶都有很好的参照性。由于文章的后半部分是收费阅读的,就不在这里直接摘抄,只做一些阅读笔记。https://gitchat.youkuaiyun.com/activity/5bd81467642db707a4cd02e5关于 C++11 常用一些知识点auto 关键字 for-each 循环 右...
2019-09-10 10:38:32
455
原创 C# SerialPort控件说明
1.命名空间:System.IO.Ports,包含了控制串口的类、同步I/O、事件驱动I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问。使用方法:Using System.IO.Ports2.通讯端口号:PortName,获取和设置通信端口,返回值为String。一般为:COM1、COM2...不能超过163.通讯格式:波特率 BaudRate;数据位 DataBits;停止位 ...
2019-08-28 13:27:11
3299
原创 source insight 4.0 配色方案及配置方法
步骤:一、在source insight4.0的菜单栏选择“Options”;二、选择“Load Configuration”;三、浏览选择到下载好的配色方案文件,后缀名为“.xml”;四、点击“Continue”即可完成导入。网上一篇很详细的自定义配置方法:https://blog.youkuaiyun.com/wenfei11471/article/details/80467418可...
2019-03-01 18:59:25
11656
原创 C# 识别USB设备,获取设备全称以及对应端口号 CP210X为例
//相关命名空间using System.IO.Ports;using System.Management;//相关全局变量public static SerialPort Hcom = new SerialPort();private uint HusbCount = 0;private string HusbInfo = string.Empty;//核心代码if (!Hco...
2019-02-28 11:17:50
5605
6
原创 Linux 共享文件夹 - Ubuntu 下 Samba 配置
1. Samba软件包的安装使用源安装,在终端中输入如下命令:#sudo apt-get install samba#sudo apt-get install smbclient2. Samba服务器的启动、关闭和重启启动Samba服务器只需执行如下命令:#sudo /etc/init.d/samba start(或者是smbd start)关闭Samba服务器:#sudo ...
2018-11-26 09:58:53
257
原创 Linux 下 调用 大华SDK
非QT 等界面形式进行大华SDK的调用,主要就是解决Linux下调用大华SDK的一个环境搭建问题。Makefile 文件TARGET=netSdkDEMOCC=gcc CXX=g++ CFLAGS=-gCPPFLAGS=-DLINUXINCLUDE=-I.LIBS=-L. -ldhnetsdk -ldhconfigsdk -lpthreadinclude Makefil...
2018-11-26 09:56:04
4509
原创 Windows下 QT调用大华SDK 实现 摄像头视频实时播放
QT环境搭建方法一:新建QT项目后,首先是整体结构:Sources :自己的; Header:除自己的以外,右键添加SDK提供的头文件; pro文件:主要就是自行添加.lib的加载路径 .DLL文件的存放位置:build-DH-Realplay-1-Desktop_Qt_5_9_1_MinGW_32bit-Debug\debug 构建项目后的debug中放SDK提供的DLL...
2018-11-23 17:56:43
4917
7
sip协议简介 windows sip client (minisip)和 sip server(eyebeam)
2021-01-13
解压此压缩包后获取NetFx3.cab.rar
2020-04-15
Visual Studio 2019 插件 Color Theme Editor、Rock Margin、Visual Assist、VsVim
2020-04-09
source insight 4.0 配色方案
2019-03-01
C# 识别USB设备,获取设备全称以及对应端口号 CP210X为例
2019-02-28
Windows下 QT 5 调用 大华 SDK 实现摄像头视频实时播放 下载
2018-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人