自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (5)
  • 收藏
  • 关注

原创 gdb和gdbserver在arm(aarch64)上的构建过程

首先需要确定一个可用的版本,对于aarch64来讲, 7.4的版本configure里没有支持的host,修改起来东西多,而且不能确保可用。一个较低的支持aarch64的版本我已经测试到了,是gdb 8.1。构建完成后,scp复制到arm主板上既可使用,gdbserver主要是用来执行远程调试的。但这个版本也需要修改源代码,参看下边代码的注释部分。接下来就是配置和编译了。

2023-04-23 19:48:44 829

原创 glDrawElements最后一个参数的使用

在OpenGL开发当中,EBO索引缓存的使用比较常见,但是多数入门教程只会告诉你最后一个参数是0,当灵活使用的时候,发现官方对这个参数的介绍很含糊,而且具有一定误导性,官方对其描述是indice的偏移量。实际上,只计算顶点索引的步长是不对的,需要乘以顶点的size,如果顶点的类型是float,需要绘制的第一个索引在数组中的位置是6,那这个参数的值就是sizeof(float)*6。3.0以下和OpenGL ES选手可以忽略本文。

2022-12-10 14:52:05 274 1

原创 Macos下Qt Creator运行项目提示启动失败解决方案

Qt 4.8以后macos版本增加了生成App bundle功能,默认的pro文件会导致直接生成xxx.app目录,这是macos特有的程序包,这个时候启动配置里的executable依然是传统unix的可执行文件路径,因此IDE是找不到启动入口的。这个时候要么让IDE直接通过open命令打开.app项目,要么就让他直接生成经典unix程序,通过在pro文件中加入一行CONFIG-=app_bundle就可以解决该问题,加到target设定之前就可以。或者头文件设定之后。这时候重新构建,就会

2022-02-11 16:12:37 1138 1

原创 微信支付body中文乱码解决方案

本文中涉及的问题针对微信支付API v2版本,v3尚未使用到不做讨论。v2版本和中文相关的接口有统一下单、支付通知、退款申请这几个API,从本地发起的API请求中,汉字编码不正确带来的直接问题就是签名错误。网上有不少文章在介绍方法,多数在当前版本内并没有把问题说清,而且得不到解决。其实微信API本身是允许使用UTF-8编码来主调的,但是在调用的时候,需要强制指定HTTP请求编码,因此无论是httpclient还是RestTemplate都需要设置一个header信息,以下是Java的例子Htt

2020-09-30 08:40:34 2034

原创 Python中使用lua续,让lupa调用原生模块

前文曾经讲过python中使用lua的方法,目前用的最多的还是lupa模块,但是通过pip安装的lupa存在一个问题,无法支持lua原生模块,因此本文介绍一下如何用lupa调用原生模块。首先需要卸载掉原来的lupapip uninstall lupa接下来安装lua,这个不多做介绍了,下载->解压->编辑,本人用的是lua5.1.5,linux和macos都没问题安装...

2019-07-10 09:12:30 1564

原创 微信小程序发红包发零钱双向验证攻略

首先需要明确几个概念,小程序、公众号各自的能力范围。本文涉及到的功能均需要TLS的双向验证机制,因此证书的处理是开发中最容易遇到的问题,而且这些肯定是运行在服务器上的,绝大多数情况下都是证书使用错误导致,其次就是IP白名单的问题。关于TLS双向验证,这不是传统意义上的http多次交互握手,而是基于TLS协议的一个长连接,在握手、协议选择、校验私钥之后才进行数据传输。设计双向验证的,需要3个...

2019-05-30 11:06:05 1093

原创 C#在Winform下文字高度计算方法

首先明确一点,Winform下的所有UI绘制都是基于GDI+的,所以网上能找到的关于文字高宽计算的都采用以下方式来进行string content = "目标文本";Graphics g = this.CreateGraphics(); //this是指所有control派生出来的类,这里是个formSizeF size = g.MeasureString(content, new Fo...

2019-04-10 15:45:13 3017

原创 DSO missing 解决办法

DSO是Dynamic Shared Object的简称,其实就是动态链接库,解决办法很简答,检查库是否存在,如果不存在,就编译一套,多数情况下是库的版本导致的,这时需要在编译参数内通过-L强制指定所需库的位置。嗯,就这么简单附上一个本人遇到的类似问题和解决过程haojing@VM-0-2-debian:~/myapp/myapp$ g++ myio.cpp main.cpp -o ./...

2019-03-04 14:37:13 4085

原创 Python和lua互相调用

本帖中用到的py模块是lupa,目前版本是1.7,通过pip可以直接安装。说明一下,由于这个模块的文档非常少,只有几个代码例子,所以以下所说都是根据已有的例子自己测出来的。如果有更好的办法请回帖。一、python调用lua,这个不用废话了,照搬lupa在python社区的所有例子都可以,但要注意一点,整段的lua文件代码,不能使用eval方法,一定会报错。原因不多讲了。整段lua代码的调用直接...

2018-12-18 10:59:41 13308 3

转载 socket编程在windows和linux下的区别

下面大概分几个方面进行罗列:  Linux要包含  [cpp]  #include <sys/socket.h>  #include <netinet/in.h>  #include <netdb.h>  #include <arpa/inet.h>  等头文件,而windows下则是包含  [cpp]  #include <...

2018-11-29 11:47:40 1623

转载 OpenSSL读写Socket

#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <netdb.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include

2018-05-16 14:04:26 1085

原创 NodeJS实现同步http请求

npm install -g xd-synchttp

2018-05-15 18:01:55 6665 3

原创 Node之N-API开发教程

长话短说,N-API在node8.0以后开始加入支持,目的在于解决node跨版本之间原生模块的兼容问题,Nan原生模块无法兼容不同版本的Node,需要重新编译(看脸和google的心情)。N-API做了一层抽象,实现了跨版本支持。需要注意一点,10.0之前,N-API是试验模式,使用该模块的时候会在stderr也可能是stdout输出一段警告,程序不依赖控制外可以无视此警告。10.0以后默认支持,...

2018-05-15 17:25:22 5819

转载 Cocos2d-x使用iOS游戏内付费IAP(C++篇)

前期准备设备与账号在开始编码之前我们需要准备测试环境。IAP只能真机测试,准备一台iOS设备是必须的。真机调试与IAP沙盒(SandBox)测试需要IDP(IOS Developer Program)账号。MAC开发机一台.本文不涉及IDP申请流程和真机调试设置,重点解析IAP相关的设置。新建IAP付费条目新建app ID登录iOS Dev

2015-03-27 10:00:04 1110

转载 Openfire 整合自有用户系统

写在前面:openfire的群我们自己实现了持久化的群,所以本文不考虑群方面的用户操作。本人使用Mysql作为openfire的数据库,自有系统的用户库也是Mysql。需要将openfire的用户全部走自己的业务系统进行授权和验证,所以需要在openfire中进行自有用户数据库的整合。 Let's go -----------------------------------

2014-05-08 14:35:11 527

转载 C#_控件的缩写大全

@标准控件btn Button chk CheckBox ckl CheckedListBox cmb ComboBox dtp DateTimePicker lbl Label llb LinkLabel lst ListBox lvw ListView mtx MaskedTextBox cdr MonthCalendar icn NotifyI

2014-02-18 11:06:29 747

原创 C# Socket的Send问题

C#中Socket的Send方法即使是在阻塞模式下也会立即返回,查了不少资料,都没什么结果,最后在MSDN找到了答案。Send的发送默认是不带参数的,其实是写入了本地缓存区,然后基础系统拆分后分批次发送。如果想要实现真正的阻塞,需要使用SocketFlag参数但SocketFlag参数在baidu和google并没有很多描述,反倒是MSDN有一些详细的例子,现在把代码贴上来,一看便知/

2013-12-26 22:20:21 6672 2

原创 自定义Windows滚动条滚动动作

废话不多说了,通过WinProc获取WM_VSCROLL消息 拆分WParam数据,然后自行处理,VC样例代码如下:C#可以参考void CSystemdlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or ca

2013-11-17 08:34:49 858

转载 WIN32串口编程

在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。  在Win32下,可以使

2013-11-04 19:23:36 563

转载 计算字符串的相似度(VB2005)

本人阅读了《编程之美》,参阅了其中的——计算字符串的相似度——一节。感觉颇为实用。现将这一文章贴于此处,并将代码赋予其后。  许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程度。我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:    1.修改一个字符(如把“a”替换为“b”)。    2.增加一个字符(如把“abdd”变为“aebdd”

2013-10-10 18:31:51 1558

转载 文本比较算法Ⅰ——LD算法

文本比较算法Ⅰ——LD算法  在日常应用中,文本比较是一个比较常见的问题。文本比较算法也是一个老生常谈的话题。  文本比较的核心就是比较两个给定的文本(可以是字节流等)之间的差异。目前,主流的比较文本之间的差异主要有两大类。一类是基于编辑距离(Edit Distance)的,例如LD算法。一类是基于最长公共子串的(Longest Common Subsequence),例如Ne

2013-10-10 18:15:35 902

转载 Windows编程之滚动条—滚动条消息

在用鼠标单击滚动条或者拖动卷动方块时,Windows给窗口消息处理程序发送WM_VSCROLL(供上下移动)和WM_HSCROLL(供左右移动)消息。在滚动条上的每个鼠标动作都至少产生两个消息,一条在按下鼠标按钮时产生,一条在释放按钮时产生。和所有的消息一样,WM_VSCROLL和WM_HSCROLL也带有wParam和lParam消息参数。对于来自作为窗口的一部分而建立的滚动条消息,您可以忽

2013-09-23 12:19:40 2890

转载 C#为RichTextBox控件添加行号

写过程序的人应该不会对RichTextBox感到陌生,与TextBox相比,它封装了更丰富的对象,使你的程序使用起来更加方便。但是它也有美中不足的地方。比如说没有行号,滚动条滚动进度无法控制等一系列的问题。今天,就据我所熟悉的,向大家介绍介绍.希望达到抛砖引玉的效果,有不足的地方,还请大家积极指出来!首先介绍如何为自己的RichTextBox增加行号。新建一个用户控件类(UserCon

2013-09-18 11:19:34 4131

转载 C#异步编程模式IAsyncResult概述

IAsyncResult 异步设计模式通过名为 BeginOperationName 和 EndOperationName 的两个方法来实现原同步方法的异步调用,如 FileStream 类提供了 BeginRead 和 EndRead 方法来从文件异步读取字节,它们是 Read 方法的异步版本    Begin 方法包含同步方法签名中的任何参数,此外还包含另外两个参数:一个AsyncCall

2013-09-13 19:06:19 2942 1

转载 c# Invoke和BeginInvoke 区别

c# Invoke和BeginInvoke 区别转自http://www.cnblogs.com/c2303191/articles/826571.htmlControl.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步

2013-09-13 19:02:47 583

转载 详细介绍C++中的虚函数和动态联编

面向对象程序设计的基本观点是用程式来仿真大千世界,这使得它的各种根本特性非常人性化,如封装、继承、多态等等,而虚函数就是c++中实现多态性的主将。为了实现多态性,c++编译器也革命性地提供了动态联编(或叫晚捆绑)这一特征。虚拟函数亦是mfc编程的关键所在,mfc编程主要有

2011-10-12 06:29:29 456

转载 浅谈 Linux 内核开发之 PCI 设备驱动

本文介绍了 PCI 的基本概念,并从 Linux 内核的角度出发,介绍了 PCI 设备的初始化以及配置。

2010-09-13 17:48:00 434

转载 基于RBAC的权限设计

基于RBAC的权限设计模型:  1       RBAC介绍  RBAC模型作为目前最为广泛接受的权限模型。  NIST(The National Institute of Standards and Technology,美国国家标准与<a onclick="function onclick(){tagshow(event, %BC%BC%CA%F5);}

2010-02-07 12:27:00 340

原创 中介者模式(Mediator)

中介者模式作用:        用一个中介对象来封装一系列的对象操作。中介者使各对象不需要显式地相互交互,从而使其耦合松散,而且可以独立地改变它们之间的交互。正文:       中介者模式是一个简单易用的模式。也许很多人在实际的项目中都已经用到过了,只是不知道它就是中介者模式。它把多对多的交互变成了一对多的交互,从而简化的交互,理清了思路。       让我们来看个例子。     

2007-07-05 10:38:00 562

转载 A*寻路算法扫盲

这篇文章并不试图对这个话题作权威的陈述。取而代之的是,它只是描述算法的原理,使你可以在进一步的阅读中理解其他相关的资料。最后,这篇文章没有程序细节。你尽可以用任意的计算机程序语言实现它。如你所愿,我在文章的末尾包含了一个指向例子程序的链接。 压缩包包括C++和Blitz Basic两个语言的版本,如果你只是想看看它的运行效果,里面还包含了可执行文件。我们正在提高自己。让我们从头开始。。。

2007-05-19 12:47:00 1423 1

Go语言编程

本书全面借少了Go语言的发展和语法特性,并通过C/Java的对比来突出go的语言特性,和传统的语言类书籍比,本书还突出介绍了Go语言并行计算的基础知识,作为go的入门书籍已经是非常合格了。

2014-07-04

Cocoa编程指南

cocoa开发指南,前十几章,后边的中文版没有

2013-05-16

Objective-C中文版初学者指南

针对于有C/C++基础的用户的一篇文章,能够让你在几分钟内熟悉这门语言

2010-12-29

Objective-C 入门指南

Objective-C 入门指南,对新手的一点指导,有C基础的可以轻松上手

2010-12-29

DotMSN源代码附例子代码

dotmsn2.0.2,开源的msn开发工具,C#编写,可以直接引用,操作简单。

2009-09-14

空空如也

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

TA关注的人

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