- 博客(83)
- 资源 (244)
- 收藏
- 关注
原创 Bitnami redmine 开启远程访问数据库
1、编辑 C:\Bitnami\redmine-4.2.1-2\mysql\my.ini 文件,将 bind-address 字段从 127.0.0.1 改为 0.0.0.0。然后重启mysql服务程序。2、命令行进入到 C:\Bitnami\redmine-4.2.1-2\mysql\bin 目录,依次执行命令:mysql -u root -p此时输入安装redmine时的管理员密码接着切换到 mysql 表use mysql看看现有的连接限制select user,host from
2021-07-08 08:23:37 940
原创 VS2019编译mongo-cxx-driver
准备mongo-c-driver:https://github.com/mongodb/mongo-c-driver/releasesmongo-cxx-driver:https://github.com/mongodb/mongo-cxx-driver/releasesPython:https://www.python.org/downloads/CMake:https://cmake.org/download/因为C++的SDK是基于C SDK的包装,所以要先编译C SDK,再编译C++ SD
2021-07-06 22:50:42 910
原创 为特定函数关闭缓冲区溢出检查
VS项目在默认情况下会启用缓冲区溢出检查来一个Demotypedef struct { int x[20];} BUFFER;int foo() { BUFFER cb; cb.x[0] = 1; return 0;}; int _tmain(int argc, _TCHAR* argv[]){ foo(); return 0;}foo函数的汇编代码是这个样子的编译器会检查你的代码,可能的话会生成一些安全代码,比如上面的"__security_chec
2020-08-12 17:09:55 892
原创 VC编译选项“基本运行时检查”的作用
从VS新建一个C++工程,Debug的配置中,“基本运行时检查”这个选项默认值为“两者”,也就是同时包含“堆栈帧”和“未初始化的变量”检查。一、堆栈帧检查先将选项设置为“默认值”,默认值意味着不检查,写一个这样的函数void test(){ int val[3]; val[0] = 0x11111111; val[1] = 0x22222222; val[2] = 0x33333333; val[3] = 0; // 越界}其汇编代码大概如下push ebpmo
2020-05-16 12:38:16 2106 1
原创 VS编译faad2
FAAD2解码器源码下载地址https://www.audiocoding.com/downloads.htmlVS打开\frontend\faad.sln编译,出现一堆错误error C2375: “lrintf”: 重定义;不同的链接查看发现是在\libfaad\common.h文件中定义了一个lrintf函数,接着又引入了math.h文件,而math.h文件中也有一个lr...
2020-03-20 16:03:26 598
原创 lame编程实现wav转mp3后时长错误的问题
网上很多相关代码几乎都是在使用lame_encode_flush后就结束了编码工作,虽然编码后的文件能播放,但是并不规范,而且音频时长会有毫秒级的变化。但是我使用官方的lame.exe去编码就不会有问题,我于是翻了下官方的命令行程序源码,发现在编码结尾后会调用lame_get_lametag_frame来获取一个帧数据并写入到第一帧中去。/* * OPTIONAL: * lame_g...
2020-03-14 00:25:52 1295
原创 MFC修改控件的默认字体
MFC中控件的默认字体是这样的在Windows上设置控件字体的办法是向该控件发送WM_SETFONT消息,但是如果窗口上控件过多的话则需要手动去遍历控件,麻烦了点,好在MFC提供了一个SendMessageToDescendants方法,它是CWnd的成员方法,它的功能就是向窗口的所有子控件发送消息。修改字体的时机最好在窗口及其子控件初始化完成且还没显示的时候,也就是主窗口收到WM_C......
2020-01-08 23:33:29 2912 1
原创 MFC文件对话框CFileDialog自动追加扩展名
第二个参数为nullptr时,则用户必须要输入文件扩展名,否则GetFileExt等方法将返回一个空字符串CFileDialog dialog(FALSE, nullptr, nullptr, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"JPG|*.jpg|PNG|*.png|BMP|*.bmp||");dialog.DoModal();const...
2019-12-23 11:31:27 762
原创 R3下枚举进程DLL的几种方法
一、Module32First、Module32Nextvoid Enum1(){ HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId()); if (hSnapshot == INVALID_HANDLE_VALUE) return; MODULEENTRY32W...
2019-10-31 00:07:54 887
原创 驱动中打印消息以及过滤机制
在驱动开发中打印消息主要使用DbgPrint/KdPrint函数,还有升级版的DbgPrintEx/KdPrintEx。一、Dbg版本和Kd版本的区别Dbg开头的才是正统的API,而Kd开头的只是一个宏,最终调用的还是DbgXXX方法,Kd版函数存在的意义是打印消息在Release版本中会被编译器优化掉,不会产生代码。#if DBG #define KdPrint(_x_) Db...
2019-06-20 11:51:58 2282
原创 配置VS2013+WDK8.1+VMware的驱动开发环境
网上已经有蛮多搭建驱动开发环境的文章了,实测发现有些步骤是多余的,所以我重新整理了一下。新的WDK调试支持网络、USB等方式,但是我没有具体尝试,因为这些方式不支持Win7,所以我还是使用串口的方式,毕竟Win7市场占有率还是最高的。一、虚拟机VMware的设置虚拟机添加一个串口,默认名字是"\\.\pipe\com_1",记住它,后面需要用到进入系统后,运行cmd命令...
2019-06-18 21:31:34 1153
原创 【Magick++】创建图像
初始化库使用Magick++之前必须要使用InitializeMagick方法初始化库,根据官方例子来看,这个函数的唯一一个参数永远是程序路径int main(int argc,char **argv) { Magick::InitializeMagick(*argv);}但是现在的工程默认都是Unicode编码了,所以这个地方可以通过GetModuleFileName...
2019-04-25 16:29:13 1861
原创 【Magick++】配置开发环境
有两种安装方法,一是用官方编译好的库,二是自己通过源码编译。第一种方式:1、去 https://imagemagick.org/script/download.php#windows 下载对应的安装包。2、安装过程中勾选"Install Development..."选项。安装完成后在安装目录下就会有对应的DLL文件和头文件了,但是这种方式有个小问题,就是对于运行时的依赖。比如...
2019-04-25 13:54:02 3207
原创 【Cocos2d-x】模仿热血传奇开门动画
一、准备素材传奇登录场景背景资源在ChrSel.wzl文件中,背景图索引是22号,开门动画是24~32号(共9张)。至于图片提取,可以参考之前写过的一篇关于热血传奇资源文件的文章https://blog.csdn.net/aqtata/article/details/86711352网上也有现成的工具可用。二、优化素材这一步不是必须的,但本着精益求精的精神,为了最大限度节省内存...
2019-02-21 16:44:24 3332 1
原创 【HGE】使用子窗口功能
在学习HGE的过程中,发现所有例子程序都没有自己创建过窗口,因为HGE内部都帮我们创建好了。那么如果我们有某种需求想自己创建窗口,HGE只负责在给定的窗口中绘图是否可行呢?也是可以的,HGE提供了子窗口功能,但它并不是在你的窗口上直接画图,HGE依然会创建窗口,但会作为一个子窗口而存在。我们看看System_Initiate的实现bool HGE_CALL HGE_Impl::Syste...
2019-02-18 23:26:29 641
原创 【Cocos2d-x】修改资源搜索路径
以下研究基于Cocos2d-x 3.17.1版本。还是从默认的工程模板开始,在场景初始化中创建精灵的地方开始auto sprite = Sprite::create("HelloWorld.png");if (sprite == nullptr){ problemLoading("'HelloWorld.png'");}else{ // position the...
2019-02-17 16:30:39 1826
原创 【Cocos2d-x】让窗口默认居中显示
在windows上开发时,默认情况下窗口出现的位置是不确定的,而cocos2d-x也没有提供api去指定,解决办法是修改一下源码。先创建一个HelloWorld工程看看,以下工程模板是基于cocos2d-x 3.17.1版本,不同版本可能略有不同。创建工程:".\cocos.bat new HelloWorld -l cpp -d d:\"窗口的创建过程在AppDelegate.cpp...
2019-02-17 13:34:42 1316
原创 HGE port for Delphi
HGE的Delphi版本是国外网友编写的,非官方发布。最新版本是1.7,发布于2009年,适用于Delphi2007及以下版本。https://www.pascalgamedevelopment.com/showthread.php?5133-HGE(Haaf-s-Game-Engine)-port-for-Delphi备用链接:https://download.csdn.net/down...
2019-02-16 12:03:51 1464 1
原创 【HGE】使用hgeFont渲染图片字体
通过一个简单的例子来分析#include "pch.h"#include <hge.h>#include <hgesprite.h>#include <hgefont.h>#pragma comment(lib, "hge")#pragma comment(lib, "hgehelpers")HGE* hge = nullptr;hgeF..
2019-02-15 14:20:34 688
原创 热血传奇资源文件wzl、wzx解析
盛大传奇客户端的图片资源都保存在data目录下的wzl文件中,wzl文件结构比较简单,由一个文件头结构和若干图片数据组成。找了个最小的wzl文件作为例子蓝色高亮部分就是文件头,其中只有ImageCount有意义,其他的字段不清楚是做什么的,也不用关心,因为不会影响图片解析。ImageCount表示该文件中一共有多少张图片,但是研究后发现,后面出现的图片数量不一定就是这个总数,因为有...
2019-01-31 11:22:02 23146 24
原创 认识HGE游戏引擎
HGE全称Haaf's Game Engine,是一个C++开发的2D游戏引擎,基于DirectX 8,最新的版本支持DirectX 9。最后一个版本是1.81版本,发布于2008年,也就是十一年前,是的,这个项目已经不再维护了。我是通过《传奇》这款游戏认识它的,我不清楚盛大官方的客户端是否用到了HGE,但我肯定有些私服客户端是基于它开发的。更多详情可以看它的官方网站:http://k...
2019-01-27 12:22:11 11604 3
原创 【ASP.Net Core】设置JSON中DateTime类型的格式化
不特别设置的话,对于DateTime类型默认格式化为带T的字符串,如"yyyy-MM-ddTHH:mm:ss"。如果需要自定义这个格式,需要在Startup类的ConfigureServices方法中指定将默认的services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);改为serv...
2018-10-15 11:32:47 7114
原创 【ASP.Net Core】发布并在Docker中运行服务器
一、Linux环境问题现在要部署一个用ASP.Net Core 2.1开发的服务器到CentOS6系统上,因为只是临时用下,所以打算直接独立发布,这样服务器上不用装asp runtime也可以跑起来,就是一个绿色程序的概念,和go一样,丢上去就能跑注意"部署模式"选择的独立,运行时选择的linux-x64。但是因为CentOS6这个系统自带的libc/libstdc++版本都很低,...
2018-10-14 09:56:55 5575 1
原创 [Delphi] 多线程编程
本篇简单介绍一下Delphi下多线程的编写一、CreateThread这个是最原始最基础的方法,利用Windows API来创建function ThreadProc(param: LPVOID): DWORD; stdcall;begin Result := 0;end;var threadId: TThreadID;begin CreateThread(ni...
2018-09-21 17:01:43 7383
原创 【D语言】共享数据
在D语言中,全局变量和静态变量默认是存储在TLS中的,这意味着不同线程有着不同的变量副本,这一点和其他语言都是不同的import std.stdio, core.thread;auto x = 3; // 全局变量默认存储在TLS,这点不同于C/C++void main(){ static y = 3; // 静态变量同全局变量一样,存储在TLS x = 5; ...
2018-09-14 15:26:15 367
原创 【Sciter】特立独行的mouseenter/mouseleave事件
之前写过一篇介绍Sciter订阅事件的几种方式(https://blog.csdn.net/aqtata/article/details/74783777),都是以click事件为例,没有太深入。今天碰到mouseenter事件不触发的问题,才又去看了下官方手册,发现这个事件在底层实现不同于click。先看问题代码<html><head> <script...
2018-09-13 16:35:34 869
原创 【Nim】线程内存模型
在Nim的设计中,每一个线程都有自己一个独立的heap,这意味着在多个线程之间不能引用同一个变量,带来的好处是不会出现竞态条件(race condition),坏处也很明显,多线程之间无法共享变量。让我们来看个简单的例子感受一下。为了引入多线程,我安装了第三方库winim(几乎涵盖了所有的windows api,非常棒)import winim/leanecho "Main Thre...
2018-09-12 21:36:42 684
原创 【Nim】调用DLL
作为一个系统级的编程语言,总是会和底层API打交道的,看看在Nim中怎么调用DLL函数我这就用Delphi来制作DLL了,名称为MyDLL.dll一、简单调用导出一个简单的除法函数function Division(x, y: Integer): Integer; stdcall;begin Result := x div y;end;在Nim中可以这样用# 定...
2018-09-12 18:50:24 903
原创 【Nim】object的构造与析构
在现代的编程语言当中,在设计时几乎都抛弃了构造函数与析构函数,比如像Go、Rust等。但在实际开发中我们确实又需要这个特性,今天学习一下如何曲线救国。我们先看看new的三使用方法第一种:通过类型构造type Person = object x: intvar obj1 = new(Person) obj2: ref Personobj1...
2018-09-11 16:01:10 295
原创 【Nim】面向对象编程:类
一、定义Nim是多范式编程语言,当然也支持面向对象编程,在Nim中,没有class关键字,定义一个类类型也是用objecttype Person = object FAge: int # 私有变量# 只读属性的效果proc name(this: Person): string = return "jack"# age属性,getterproc a...
2018-09-11 11:17:21 840
原创 【Nim】proc与method的区别
proc是静态绑定到类的,而method是动态的。先看个例子type Animal = ref object of RootObj Person = ref object of Animalproc say(this: Animal): string = "..."proc say(this: Person): string = "hello"var obj: A...
2018-09-10 16:36:51 467
原创 【Nim】重载操作符
先看个例子var i = 0echo i # 0inc(i)echo i # 1能否像C++那样通过"i++"这样的语法自增呢?Nim提供了这种可能:重载操作符proc `++`(val: var int) = inc(val)var i = 0echo i # 0inc(i)echo i # 1++iecho i # 2Nim只支持"+a"和"...
2018-09-10 15:33:26 230
原创 【Nim】高级数据类型
一、枚举类型type Day = enum Monday, Tuesday, Wednesdayvar d = Mondayecho d # Mondayd = Day(1)echo d # Tuesday和其他语言一样,枚举类型第一个元素值默认从0开始,逐渐+1,但也可以自己指定值type Day = enum Mo...
2018-09-10 15:14:21 652
原创 【Nim】基本数据类型
1、整数类型有符号的echo sizeof(int) # 取决于系统和编译器,一般是4echo sizeof(int8) # size = 1echo sizeof(int16) # size = 2echo sizeof(int32) # size = 4echo sizeof(int64) # size = 8proc foo1(x: int64...
2018-09-10 10:39:58 1261
原创 【Nim】隐式类型转换
作为一个静态语言,变量之间的赋值必须要保持类型一致proc say(s: string): string = result = "Hi: " & svar n = 10echo say(n)显然say方法接受一个string类型,你不可以传递int类型进去,需要先进行转换后再调用,像这样import strutilsproc say(s: string): ...
2018-09-09 23:15:03 359
原创 【C#】让自定义类变为可迭代
假设有两个类,一个学生类Student,它用来存储一个学生的信息,如名字和年龄。第二个是学校类School,它是学生类的集合。接下来我们一点点的看可迭代对象是如何进化的一、石器时代的写法using System;using System.Collections.Generic;using System.Linq;namespace ConsoleApp1{ intern...
2018-08-31 23:56:27 1477 1
原创 【ASP.Net Core】DB First方式映射tinyint(1)字段的问题
数据库字段类型是tinyint(1)当使用DB First方式生成类文件时本地对应字段类型为sbyte。查询数据时引发异常"Unable to cast object of type 'System.Boolean' to type 'System.SByte'."这是因为MySQL引擎在处理tinyint(1)时默认会将其当作Boolean处理。解决方法也很简单,在MySQL连接字符...
2018-08-23 17:08:49 1668
原创 绕过浏览器的自动完成功能
<input type="password" name="pwd" readonly onfocus="this.removeAttribute('readonly');"/>这是我找到的最简洁的实现方法,利用readonly属性锁住输入框,这样在页面渲染时浏览器就不会自动填入数据了。当输入框获得焦点时再移除只读属性,以便用户输入。但是在实际使用中发现,这样并非完美,主要是readon...
2018-05-30 11:23:37 937
原创 常用apt命令
apt update从软件源服务器获取最新的软件信息并缓存到本地。因为很多apt的其他命令都是要通过比对版本信息来进行操作的,如果每次都去对比线上的版本信息效率肯定不理想,也没必要,所以做了一个缓存的机制。apt upgrade从本地仓库中对比系统中所有已安装的软件,如果有新版本的话则进行升级apt list列出本地仓库中所有的软件包名apt list [package]从本地仓库中查找指定的包名...
2018-05-11 10:12:37 46706
Embarcadero.Delphi.10.3.3.v26.0.36039.7899.Lite.v15.3.exe
2019-11-25
VC-LTL-4.0.1.10-Binary-VS2019.7z
2019-08-27
Embarcadero.Delphi.10.3.0.v26.0.32429.4364.Lite.v15.0
2018-12-03
Relyze_2_15_0_win32
2018-10-11
Embarcadero.Delphi.10.2.3.v25.0.29899.2631.Lite.v14.4.exe
2018-09-26
WASAPI.cpp
2018-03-09
Embarcadero.Delphi.10.2.2.v25.0.28979.1978.Lite.v14.2
2017-12-18
Windows内核安全与驱动开发
2017-12-14
dnSpy-4.0.0-beta1
2017-10-10
jdk-9_linux-x64_bin.rpm
2017-09-22
jdk-9_linux-x64_bin.tar.gz
2017-09-22
jdk-9_osx-x64_bin.dmg
2017-09-22
IEC 60870-5-101/104 Test Tool
2022-04-13
Vinci v3.0.1.119
2022-04-11
sciter-js-sdk-4.4.8.10.zip
2021-09-15
sciter-sdk-4.4.4.3.zip
2020-08-19
ImageMagick-7.0.8-45.zip
2019-05-15
jdk-12_osx-x64_bin.dmg
2019-03-20
jdk-12_osx-x64_bin.tar.gz
2019-03-20
jdk-12_linux-x64_bin.tar.gz
2019-03-20
Embarcadero.Delphi.10.3.1.v26.0.33219.4899.Lite.v15.1
2019-02-18
HGE 1.7 For Delphi
2019-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人