自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1370)
  • 资源 (2)
  • 收藏
  • 关注

转载 自定义外部协议使浏览器拉起本地程序

由于我们的游戏需要在浏览器中调用NPAPI插件,而chrome移除了NPAPI的支持,导致游戏并不能很好的适配所有的浏览器,所以这个时候我们对于chrome浏览器用到了自定义浏览器协议这一标准。自定义浏览器协议允许在浏览器中使用的形式进行调用本地程序。包括在网页上拉起百度云网盘、或者拉起QQ等等等等,都属于自定义浏览器协议。我们的游戏客户端注册表一开始没有在下写入的注册信息,导致在chrome v74及以上浏览器中无法拉起外部程序,而在v74以下则可以拉起。

2022-09-23 11:22:17 286

原创 QT 语言切换

QT 中英文切换

2022-08-31 13:49:39 133

原创 pugi UTF8

struct xml_string_writer : pugi::xml_writer { public: wofstream wfo; xml_string_writer(string file) { auto LocUtf8 = locale(locale(""), ::new codecvt_utf8<wchar_t>); wfo.open(file, ios::out); wfo.imbue(LocUtf8); } virtual v...

2022-04-29 16:42:05 315

原创 以字符串形式打印宏值

#define PI 3.141592654#define xstr(s) str(s)#define str(s) #sint main(){ string str1 = xstr(PI); const char* str2 = xstr(PI); cout << str1 << endl; cout << str2 << endl;}

2022-04-23 19:01:17 201

原创 vcpkg

git clone https://github.com/Microsoft/vcpkg.gitcd vcpkg./bootstrap-vcpkg.sh./vcpkg integrate installvcpkg install curl[tool]

2022-02-20 09:01:43 183

转载 find_path、find_library备忘录

find_path用于查找包含的头文件,其查找顺序为:从CMAKE_INCLUDE_PATH中查找。 从系统默认头目录即/usr/include、/usr/local/inlucde中查找。其中如果从CMAKE_INCLUDE_PATH中查找的话,需要在~/.profile或者/etc/profile中设置(注意:设置后需重启系统),如下:export CMAKE_INCLUDE_PATH=/home/dansir/work/mygit/其中紫红色是你要设置的查找目录...

2022-02-16 15:19:52 251

转载 MinGW编译boost库

介绍在windows下编译boost可以选择msvc和mingw两种方式,这里介绍使用mingw方式编译,msvc也是类似的操作源码下载例如1.48.0http://www.boost.org/users/history/version_1_48_0.html使用不同的版本时将version_1_48_0替换即可编译编译 b2.exe进入boost的目录,运行bootstrap.bat,成功后会生成b2.exe编译Boost进入boost的目录.\b2.exe insta

2022-02-14 20:26:23 352

转载 多C++标准版本指定

本文主要介绍 CMake 中 include 指令的相关知识。1 概述引用 CMake 官网对于 include 指令的介绍,如下:Load and run CMake code from a file or module.include 指令的用法如下:include(<file|module> [OPTIONAL] [RESULT_VARIABLE <VAR>] [NO_POLICY_SCOPE])Load and run CMake code from th

2022-02-13 15:33:13 216

转载 Could NOT find XXX (missing: XXX_LIBRARY XXX_DIR)

有时候从github上下载一些新的包编译时经常会缺少一些插件或库文件,比如Could NOT find Bullet (missing: BULLET_DYNAMICS_LIBRARY BULLET_COLLISION_LIBRARY BULLET_MATH_LIBRARY BULLET_SOFTBODY_LIBRARY BULLET_INCLUDE_DIR)或者Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)解决办法如下

2022-02-13 00:23:26 1524

原创 msys2

$ pacman -S gcc-fortranresolving dependencies...looking for conflicting packages...Packages (9) binutils-2.37-5 gcc-11.2.0-3 isl-0.22.1-1 mpc-1.2.1-1 msys2-runtime-devel-3.3.3-7 msys2-w32api-headers-9.0.0.6214.acc9b9d9e-...

2022-02-12 23:23:18 378

原创 OpenXLSX 字段读取问题

在读取excel的时候发现有些字段无法读取,通过把excel文件解压后对比发现,正常读取和不能正常读取的字段在sharedString.xml中存储的格式有差异,取其中一个字段,如下图:正常读取的不能读取的对比可以看到其区别,然后查找openxlsx对这块的处理,通过调试代码找到代码如下:const char* XLSharedStrings::getString(uint32_t index) const{ auto iter = xmlDocument().doc

2021-12-31 14:16:28 294 1

原创 esmini LongSpeedAction修改

esmini的LongSpeedAction,如果shape设置为step的话,DynamicsDimension实际就无效了,因为step的意思就是直接设置,在LongSpeedAction的Start过程中设置完就结束了,Step就不在执行。如果我们在step的情况下,想让LongSpeedAction持续一段时间再结束,可以这么修改。在Start中去掉OSCAction::End() if (transition_dynamics_.shape_ == DynamicsSh

2021-11-29 15:00:29 165 2

转载 3W+字的设计模式手册

设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属Gang of Four(GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。有一些重要的设计原则在开篇和大家分享下,这些原则将贯通全文: 面向接口编程,而不是面向实现。这个很重要,也是优雅的、可扩展的代码的第一步,这就不需要多说了吧。 职责单一原则。每个类都应该只有一个单一的功能,并且该功能应该由这个类完全封装起来。 ..

2021-11-15 08:16:03 320

原创 OpenDrive ARC绘制秘籍

加和减代表曲率的正负

2021-11-12 17:17:29 427

原创 LateX 笔记

y = \frac{a}{b}y = A_a+A_{bb}

2021-11-04 18:15:47 65

转载 Logistic Regression:最基础的神经网络

一、什么是logictic regression下面的图是Andrew Ng提供的一个用logistic regression来识别主子的图片的算法结构示意图:「左边」的「x0到x12287「是输入(input),我们称之为」特征(feather)」,常常用「列向量x(i)「来表示(这里的i代表第i个训练样本,下面在只讨论一个样本的时候,就暂时省略这个标记,免得看晕了-_-|||),在图片识别中,特征通常是图片的像素值,把所有的像素值排成一个序列就是输入特征,每一个特征都有自己的一个」权重(we

2021-10-27 17:15:59 217

转载 从此明白了卷积神经网络(CNN)

卷积神经网络是一种曾经让我无论如何也无法弄明白的东西,主要是名字就太“高级”了,网上的各种各样的文章来介绍“什么是卷积”尤为让人受不了。听了吴恩达的网课之后,豁然开朗,终于搞明白了这个东西是什么和为什么。我这里大概会用6~7篇文章来讲解CNN并实现一些有趣的应用。看完之后大家应该可以自己动手做一些自己喜欢的事儿了。一、引子:边界检测我们来看一个最简单的例子:“边界检测(edge detection)”,假设我们有这样的一张图片,大小8×8:图片中的数字代表该位置的像素值,我们知道,像素值越大

2021-10-27 13:23:12 197

原创 opendrive匝道

2021-10-18 17:58:50 129

原创 OpenDrive记录

1. junction里面只有一半的链接关系,也就是只有road进入junction的链接关系,没有junction出去的链接关系。拿路径搜索方法举例,1) 如果当前road的前方是junction,即当前road的predecessor或者successor是junction,需要从junction里面找到当前road前方的road,即junction=‘-1’的road2)如果当前road是junction=‘-1’的road,那么当前road的前方一定是road,即当前roa.

2021-10-13 16:30:54 177

原创 ubuntu 远程桌面

1. apt-get install xrdp2.apt-get install dconf-editor3.启动软件“dconf-editor",依次展开org->gnome->desktop->remote-access, 然后取消 “requlre-encryption”的勾选4. 打开系统设置->共享,打开共享并设置密码5. 打开windows远程桌面,选择vnc-any,填入IP和共享密码...

2021-10-11 19:04:43 186

原创 p3d gauge 尺寸问题

1. 在panel.cfg中,每个window可以有多个gauge,window是gauge的容器2. 在panel.cfg中,background_color为window背景色,如果设置为0,0,0,未被gauge覆盖的部分会透明3. 在panel.cfg中,size_mm和gaugeXX的W,H是window和gauge的占比关系,而不是真实尺寸,如果size_mm == W,H,那么gauge会撑满window,否则,会用background_color填充4. 对于MAKE_S

2021-10-06 22:09:09 92

转载 SQL JOINS

2021-09-06 13:35:15 55

原创 Package ‘*****‘ has no installation candidate

如果在apt源中未找到软件,去ubuntu的软件包搜索页面中去搜索该软件Ubuntu – Ubuntu Packages Searchhttps://packages.ubuntu.com/前面红字找到对应ubuntu版本的软件版本名称,后面中括号为仓库名称,然后写入到/etc/apt/sources.list中deb http://archive.ubuntu.com/ubuntu/ groovy universe然后更新源:sudo apt update...

2021-09-04 02:41:39 113 1

原创 NSIS搜索文件夹

!include "FileFunc.nsh"Function .onInit !insertmacro MUI_LANGDLL_DISPLAY ${Locate} "C:\" "/L=D" "FolderPro"FunctionEndFunction FolderPro ${If} $R7 == "Program Files" MessageBox MB_OK '$R7' MessageBox MB_OK '$R8' ${Else} push $0 .

2021-09-02 22:45:32 125

原创 NSIS 查找文件是否存在,并设置安装路径

Var GITFunction .onInit !insertmacro MUI_LANGDLL_DISPLAY StrCpy $GIT "false" MessageBox MB_OK $9 IfFileExists "C:\Program Files\Git\git-cmd.exe" 0 +2 MessageBox MB_OK "Git已安装" StrCpy $INSTDIR "C:\Program Files\Git.

2021-08-27 17:17:24 896

原创 C++变量未初始的后果

#include <iostream>using namespace std;void dummy(int &a){}int main(){ int i = 2; while (i--) { int a; dummy(a); if (i == 1) { a = 100; } cout << a << endl; cout << &a << endl; } getchar.

2021-08-26 11:48:48 129

转载 二. 简单的NSIS安装包

新建脚本:向导我们先从一个简单的NSIS安装包开始吧,就像前面(NSIS介绍)所说,我们虽然看过用户手册,可要写安装脚本无从下手,那我们的编辑工具HM NIS Edit就派上用场了。打开HM NIS Edit,点击菜单“文件”->“新建脚本:向导”,会有向导一步步让我们输入信息,最后根据我们的输入生成.nsi脚本文件,下面我们一步步演示:新建脚本:脚本文件最后生成的脚本文件我们保存为MyApp.nsi,打开查看脚本(对照着上面截图中设置的项再

2021-08-25 18:51:52 762

转载 一. NSIS介绍

概述最近需要写一个安装程序,比对了一下现有的安装工具,最后选定了NSIS,最主要的原因一是开源、二是灵活。下面把我的要求简单列举下:1、需要检查系统环境是否满足要求2、需要界面友好的安装过程3、需要一些自定义界面,在安装过程中来获取一些必须的信息4、需要根据界面的选择来执行或跳过一些安装过程5、需要操作数据库6、需要操作IIS7、需要使用PowerShell命令设置AD/Exchange/Lync8、需要操作注册表,用于标识安装步骤以用于卸载或回滚的执行经过调查发

2021-08-25 18:13:51 185

原创 enable_if

typedef struct{ int a;}TestType;int main(){ enable_if <1, TestType>::type test1; //正确 test1.a = 100; enable_if <is_integral<int>::value, TestType>::type test2; //正确 test1.a = 100; enable_if <0, TestType>::type t.

2021-08-23 09:58:36 70

原创 CMake find_package

find_package(XXX REQUIRED)CMake 会寻找 XXX_Dir的路径查找.cmake文件有两种方式设置1. 命令行模式下,使用-D -DXXX_Dir="路径"2. 界面模式下,使用Add Entry添加XXX_Dir 变量并设置路径

2021-08-18 15:17:51 84

原创 获取进程名称与ID

HANDLE hProceessnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProceessnap == INVALID_HANDLE_VALUE) { printf_s("创建进行快照失败\n"); return -1; } else { PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); BOOL hProcess = Process32Fir...

2021-08-10 08:55:52 109

原创 MFC 窗口置顶

SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);SetWindowPos(NULL, 300, 150, 80, 40, SWP_SHOWWINDOW);

2021-08-09 23:03:09 198

原创 OpenXLSX 中文字段读取问题

在读取excel的时候发现有些中文字段无法读取,通过把excel文件解压后对比发现,正常读取和不能正常读取的中文字段在sharedString.xml中存储的格式有差异,取其中一个字段,如下图:正常读取的不能读取的对比可以看到其区别,然后查找openxlsx对这块的处理,通过调试代码找到代码如下:const char* XLSharedStrings::getString(uint32_t index) const{ auto iter = xmlDocument(.

2021-07-29 15:33:27 398

转载 二维坐标系的转换

旋转平移加旋转

2021-07-09 18:41:35 143

原创 顶点缺失问题

1. 发送缓冲区过小,模型过大,接收端接收缓冲区太小,并且接收数据与数据处理在一个线程,导致接收速度过慢。最终造成,发送缓冲区被撑爆,数据丢失。2. U3D端对单个mesh的顶点限制在了65000个。3. 对于超过65000个顶点的mesh,没有计算余数。4. 不同机器不同显卡抓取的顶点数据并不一致,有可能有10%到20%的差距。...

2021-07-09 10:01:59 68

转载 Unicode、UTF-8、UTF-16

计算机起源于美国,上个世纪,他们对英语字符与二进制位之间的关系做了统一规定,并制定了一套字符编码规则,这套编码规则被称为ASCII编码ASCII 编码一共定义了128个字符的编码规则,用七位二进制表示 ( 0x00 - 0x7F ), 这些字符组成的集合就叫做 ASCII 字符集随着计算机的普及,在不同的地区和国家又出现了很多字符编码,比如: 大陆的 GB2312、港台的 BIG5, 日本的 Shift JIS等等由于字符编码不同,计算机在不同国家之间的交流变得很困难,经常会出现乱码的问题,比如

2021-07-05 12:55:17 131

转载 法线和法线贴图

法线和法线贴图法线和法线贴图是否作为单独的章节讲解,我是有过犹豫的。其实这部分的内容并没有那么多,也不至于说涉及到非常牛逼的图形学原理。但是,最终我还是决定把这部分列为一个单章,主要理由有两点:1、法线无处不在,这是图形学基础中的基础。2、法线贴图,凹凸图,位移图等等,在图形学历史上有着比较重要的位置,在很多图形学的架构中都有应用,典型的例如延迟渲染架构。法线法线,英文名normal。首先,要理解点法线和面法线。现在资料烂大街的年代,去寻找这个答案是比较容易的,估计连百度都能找到还不

2021-06-30 12:48:31 663

原创 pscp 去掉 fingerprint

wincons.c中

2021-06-24 17:17:19 80

原创 esmini接入外部ego车控制

1. esmini 在Server.cpp中提供了外部控制ego车的方式,以UDP的方式接收外部数据然后驱动ego运动。为了开启UDP数据接收线程,只需要命令行增加--servercan

2021-06-17 17:28:33 466 1

原创 模板参数自动推导

class Dummy{public: template<typename PA, typename PB> void test(PA res, PB b) { }};int main(){ Dummy dummy; dummy.test(1, 2);}

2021-06-15 10:05:01 81 1

RT5350用户手册

RT5350中文手册,这是对ralink原厂sdk手册的补充,因为ralink的sdk的编译流程和一般的嵌入式开发板的编译流程有不少差别,所以写了这个中文手册。对于第一次接触路由方案的开发人员,有相当的参考价值。

2014-04-25

ucGUI学习笔记 -- 仿真器

ucGUI学习笔记 -- 仿真器 原创

2012-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除