自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 函数指针、lambda与bool类型间隐式转换带来的隐患

有如下代码#include <functional>#include <iostream>using namespace std;void run(bool x){ cout << x << endl;}void run(function<void ()> x){ x();}int main(void){ run([](){ cout << "xxxxxxxxxx

2020-11-24 15:27:44 365

原创 在C中给导入的Python模块添加Object

业务场景:在C中执行一段Python脚本,并且想要给Python脚本中提供一些API。解决方法:使用Python中的PyModule_AddFunctions或PyModule_AddObject。PyModule_AddFunctions的作用是向Module中添加一组函数,其声明为PyAPI_FUNC(int) PyModule_AddFunctions(PyObject *, PyMethodDef *);参数1对应要添加的Module,参数2就是目标的函数组,方法参考创建PyCFu

2020-05-19 15:39:13 1555

原创 C调用python类的正确方法

C或C++调用python一般都可以使用python自带的库完成,首先添加python.h的头文件,链接时加上对应的库即可。但是在C/C++程序中使用到python的类时会遇到很多坑,网上搜会得到很多相似的方法如下所示首先声明,以下的方法是有问题的,有问题的地方我会使用红字标出注: 下述所有导入方法在导入失败时不会报错, 只会返回空指针.第一步是导入.py文件:使用Py...

2019-04-24 19:06:15 8259 8

原创 如何修改一个字符串常量的值?

关于程序内存布局的问题在面试中经常会被问到,其中尤其常见的是问字符串常量到底存在哪个地方,是堆区,栈区,还是全局变量区?一般答案都会说是全局变量区,但是在我尝试更改字符串常量的值的时候却引发了一些问题。首先我尝试了使用VirtualProtect更改Windows下的字符串常量值的读写权限,很成功的更改了其值,但是在对Linux进行处理时则不然,使用先是mprotect失败,原因为EINVAL,查...

2018-11-25 02:50:31 4057

原创 利用openssl中的sha3生成以太坊账户地址

以太坊账户地址众所周知,区块链是一种基于密码学的技术,以太坊的账户等规则都是使用EC(椭圆曲线)这一体系来进行的,以太坊使用的EC是著名的secp256k1曲线,从本质来说以太坊账户其实就是一个ECDSA的私钥,因为掌握某一私钥就可以使用私钥对交易进行签名,可以说,就完整的掌握了该账户。而EC的私钥就是一个范围内的随机数,对于secp256k1曲线,其最大值为0xFFFFFFFFFFFFFFF...

2018-08-01 19:07:22 2162 4

原创 STL中的map和unordered_map选择

基本概念mapmap在底层使用了红黑树来实现,在头文件map中我们可以找到这样一句话ordered red-black tree of {key, mapped} values, unique keys红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,红黑树则还要满足以下五个性质:性质1 节点是红色或黑色。性质2 根节点是黑色。...

2018-07-24 18:59:33 6114 1

原创 为arm64-v8a编译OpenSSL库

使用setenv配置环境的文件请去下面的地址下载https://download.csdn.net/download/hnlylyb/10489052配置OpenSSL需要这么写./Configure no-shared no-ssl2 no-ssl3 no-comp no-hw no-engine android64-aarch64 --openssldir=/mnt/d/openssl-out...

2018-06-20 19:15:07 4263

原创 NDK开发笔记——Android使用openssl

Android自身使用了谷歌的openssl分支boringssl,因此,如果要在Android中使用openssl,需要编译成静态库集成在自己的程序当中。为Android编译openssl,首先需要获取到openssl的源代码和Android ndk,利用ndk中的交叉编译工具链编译出需要的openssl库。具体的配置可参照https://www.jianshu.com/p/b790c548e787,我使用的ndk版本是r17b,openssl版本是1.1.0h

2018-06-20 14:53:30 9384 2

原创 JNI控制台输出的顺序

在Java中使用调用c++程序时,遇到了标准输出输出顺序的一个问题。假设有Java代码如下public class Main { public static void main(String[] args) { System.out.println("Hello World!"); System.loadLibrary("JNITest"); ...

2018-06-15 18:57:22 835

原创 利用同名类欺骗C++编译工具链(下)

A.h#pragma once#include &lt;stdio.h&gt;int test();class A{ char a;public: A() { printf("A\n"); } ~A() { printf("A\n"); }};B.h#include &lt;stdio.h&gt;class A{public: A() { printf("B\n")...

2018-06-14 18:49:07 315

原创 利用同名类欺骗C++编译工具链(上)

A.h#pragma once#include &lt;stdio.h&gt;int test();class A{ char a;public: A() { printf("A\n"); } ~A() { printf("A\n"); }};B.h#include &lt;stdio.h&gt;class A{public: A() { printf("B\n")...

2018-06-14 18:05:35 210

原创 OPENSSL版本不兼容造成的undefined reference

最近由于项目需要,在linux下需要使用openssl进行加密和解密。在官网下下来openssl make一切正常,编译程序时出现了undefined reference to `BN_is_zero'一般这种链接错误也就是链接的库没有对应的函数,但是使用 nm -D libcrypto.so.1.1查看编译好的库有00000000000b4190 T BN_is_zero说明该函数是存在的。但是...

2018-06-13 13:42:59 17971

arm64-v8a用OpenSSL环境配置文件

用于在linux下给ndk编译openssl的配置文件,目标abi为arm64-v8a,基于官方的setenv修改

2018-06-20

QtXlsxWriter

QtXlsxWriter在windows下编译好的dll库

2015-05-30

空空如也

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

TA关注的人

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