9 hnlylyb

尚未进行身份认证

暂无相关简介

等级
TA的排名 23w+

C调用python类的正确方法

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

2019-04-24 19:06:15

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

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

2018-11-25 02:50:31

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

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

2018-08-01 19:07:22

STL中的map和unordered_map选择

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

2018-07-24 18:59:33

为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

NDK开发笔记——Android使用openssl

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

2018-06-20 14:53:30

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

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

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

2018-06-14 18:49:07

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

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

2018-06-14 18:05:35

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
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。