废话不多说,直接进入正题。
CryptoPP的代码可以直接官网或者github下载。
本人使用的CryptoPP版本是cryptopp565旧版,喜欢折腾的可以下载最新版,不过最新版我没试过,看官网说明新版用NDK编译会有问题。

Win32平台

首先在Classes同级目录建立一个external目录,将下载的CryptoPP解压到external目录,并且将文件夹改名为cryptopp
然后打开Cocos2dx工程将cryptlib工程添加到项目里



添加完成后就会在项目中出现cryptlib的工程,接下来就是修改相关的工程属性,首先修改cryptlib工程的属性配置,直接上图:


需要修改的的地方我都框起来了(所有的截图都是已经修改过的,不一定要与图片一致,不同的情况可以适当调整),输出目录中间目录最好与Cocos2dx工程保持一致;如果保持一致请将生成的cryptlib.lib文件拷贝到项目生成的可执行文件目录下,不然会发生找不到cryptlib.lib的报错。
运行库一定要与Cocos2dx工程保持一致,不然会报错。
OK,现在cryptlib.lib修改完了现在开始修改Cocos2dx工程
1.首先在引用目录中添加我们自己添加的external目录,具体写法需根据自己的文件所在位置进行调整


2.然后在附加依赖项中添加cryptlib.lib

好的,现在我们的Win32平台基本已经配置完成了,现在可以写一段代码测试一下。我们可以在HelloWorldScene.cpp中init()函数中添加代码测试。

#include "cryptopp/md5.h"
#include "cryptopp/hex.h"
 byte digest[CryptoPP::MD5::DIGESTSIZE];std::string message = "HelloWorld";CryptoPP::MD5 hash;hash.CalculateDigest(digest, (const byte*)message.c_str(), message.size());CryptoPP::HexEncoder encoder;std::string output;encoder.Attach(new CryptoPP::StringSink(output));encoder.Put(digest, sizeof(digest));encoder.MessageEnd();CCLOG("HelloWorld MD5 : %s", output.c_str());


如果没问题,就可以在输出窗口看到类似的打印。

Android平台

cryptopp文件夹中新建一个Android.mk文件,将cpp文件添加到文件中,一些含有main入口的文件不要添加(例如:fipstest.cpp,regtest.cpp,test.cpp,validat1.cpp,validat2.cpp,validat3.cpp,bench.cpp,bench2.cpp)不同版本可能有些不同,文件中的类容大致如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)LOCAL_MODULE := cryptopp_static
LOCAL_ARM_MODE := arm
LOCAL_MODULE_FILENAME := libcryptoppLOCAL_SRC_FILES := \3way.cpp \adler32.cpp \algebra.cpp \algparam.cpp \arc4.cpp \asn.cpp \authenc.cpp \base32.cpp \base64.cpp \basecode.cpp \bfinit.cpp \blake2.cpp \blowfish.cpp \blumshub.cpp \camellia.cpp \cast.cpp \casts.cpp \cbcmac.cpp \ccm.cpp \chacha.cpp \channels.cpp \cmac.cpp \cpu.cpp \crc.cpp \cryptlib.cpp \default.cpp \des.cpp \dessp.cpp \dh.cpp \dh2.cpp \dll.cpp \dsa.cpp \eax.cpp \ec2n.cpp \eccrypto.cpp \ecp.cpp \elgamal.cpp \emsa2.cpp \eprecomp.cpp \esign.cpp \files.cpp \filters.cpp \fips140.cpp \gcm.cpp \gf256.cpp \gf2n.cpp \gf2_32.cpp \gfpcrypt.cpp \gost.cpp \gzip.cpp \hex.cpp \hmac.cpp \hrtimer.cpp \ida.cpp \idea.cpp \integer.cpp \iterhash.cpp \keccak.cpp \luc.cpp \mars.cpp \marss.cpp \md2.cpp \md4.cpp \md5.cpp \misc.cpp \modes.cpp \mqueue.cpp \mqv.cpp \nbtheory.cpp \network.cpp \oaep.cpp \osrng.cpp \panama.cpp \pch.cpp \pkcspad.cpp \polynomi.cpp \pssr.cpp \pubkey.cpp \queue.cpp \rabin.cpp \randpool.cpp \rc2.cpp \rc5.cpp \rc6.cpp \rdrand.cpp \rdtables.cpp \rijndael.cpp \ripemd.cpp \rng.cpp \rsa.cpp \rw.cpp \safer.cpp \salsa.cpp \seal.cpp \seed.cpp \serpent.cpp \sha.cpp \sha3.cpp \shacal2.cpp \shark.cpp \sharkbox.cpp \simple.cpp \skipjack.cpp \socketft.cpp \sosemanuk.cpp \square.cpp \squaretb.cpp \strciphr.cpp \tea.cpp \tftables.cpp \tiger.cpp \tigertab.cpp \trdlocal.cpp \ttmac.cpp \twofish.cpp \vmac.cpp \wait.cpp \wake.cpp \whrlpool.cpp \winpipes.cpp \xtr.cpp \xtrcrypt.cpp \zdeflate.cpp \zinflate.cpp \zlib.cppLOCAL_C_INCLUDES := $(LOCAL_PATH)include $(BUILD_STATIC_LIBRARY)

修改proj.android/jni/Application.mk文件内的APP_CPPFLAGS(添加-fexceptions参数)

APP_CPPFLAGS := -frtti -fexceptions -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char

修改proj.android/jni/Android.mk文件,主要修改有四处:

添加external目录

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
#add cryptopp
$(call import-add-path,$(LOCAL_PATH)/../../external)

LOCAL_C_INCLUDES,添加external

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \$(LOCAL_PATH)/../../external

增加引用cryptopp_static

LOCAL_STATIC_LIBRARIES := cocos2dx_static
#add cryptopp
LOCAL_STATIC_LIBRARIES += cryptopp_static

增加import-module

$(call import-module,.)
#add cryptopp
$(call import-module,cryptopp)

现在就可以继续测试android平台是否成功。
将项目打包到手机上,连接用Eclipse,看LOGCAT打印,如果也出现了HelloWorld MD5:68E109F0F40CA72A15E05CC22786F8E6则表明成功了

ios平台

由于本人没有Mac和苹果手机所以没有进行测试所以,暂时无法分享。

Cocos2dx 集成CryptoPP相关推荐

  1. COCOS2dX - 集成PayPa

    COCOS2dX - 集成PayPal 在 paypal 的世界里,他有多种支付方式: 直接支付(single payment):类似国内支付产品,直接对一件或多件商品使用 paypal 余额支付 预 ...

  2. cocos2dx集成友盟社会化分享图片崩溃问题

    本人不懂oc,一步一步按照友盟的文档做,好不容易把分享做好了,结果在 分享图片的时候宕掉了.各种测试,搞了一下午终于搞定了. 如下是友盟文档的做法,错误就在[UIImage imageNamed:@& ...

  3. cocos2d-x中CCEditbox导出到lua

    自从工作后感觉时间较少(每天工作9-22,晚上就不想动了,早上想多睡点),工作中用的是 cocos2d-x.cocos2d-x是一款手机游戏引擎,虽然支持lua,但和love2d相比非纯lua游戏引 ...

  4. cocos2d-x分享系统

    cocos2d-x之新浪微博平台接入接口 cocos2d-x之Facebook平台接入接口 cocos2d-x集成sharesdk

  5. Cocos2d-x视频教程

    目录 1. 我的技术专栏 2. 相关推荐 3. 下载链接 4. cocos2d-xx Lua+JS+C++教学视频 5. 杨丰盛Cocos2D-X游戏课程 6. [Cocos2d-x]塔防游戏开发实战 ...

  6. cocos2d-x高级学习

    弱联网开发技术: libcurl 添加lib文件:libcurl_imp.lib  pthreadVCE2.lib 添加头文件:#include"curl/curl.h" curl ...

  7. 关于自动寻径和图、邻接表的学习和启发

    以后的游戏中可能会用到人物的自动寻径,在网上看到一个非常不错的博文,特学习了一下,并转了过来为以后留着... 再次感谢 Siliphen的分享,本文转载自 http://blog.csdn.net/s ...

  8. cocos2d 解密ccbi_cocos2d-x高级学习

    弱联网开发技术: libcurl 添加lib文件:libcurl_imp.lib  pthreadVCE2.lib 添加头文件:#include"curl/curl.h" curl ...

  9. linux组权限管理,Linux组管理和权限管理

    ⒈Linux组基本介绍 1)在Linux中的每个用户必须属于一个组,不能独立于组外. 2)Linux中每个文件都有所有者.所在组.其它组的概念 ①所有者 一般(默认)为文件的创建者,谁创建了该文件,就 ...

最新文章

  1. 关于本分类(codeforces-好题系列)
  2. ffmpeg php 抠像_PHP中使用ffmpeg截取视频图片笔记
  3. spring中的AnnotationConfigUtils
  4. pytorch处理多维输入的问题
  5. Bootstrap的form-group form-control input-group button-group
  6. 使用Github(基本概念实战操作)
  7. .NET 十五岁,谈谈我眼中的.NET
  8. 《Python核心编程》第二版第18页第一章练习 -Python核心编程答案-自己做的-
  9. Android学习之PhotoView在Eclipse上的使用
  10. 访问控制权限和 ------java命名规范
  11. Struts2——解耦方式
  12. Fiddler 抓包工具
  13. 稳压管Ir、Izt、Izk、Izm释义
  14. webpackjsonp 还原_EST:微生物介导下砷还原及其在铁氧化物上吸附/解吸耦合反应动力学模型...
  15. https证书安装部署 https证书怎么安装
  16. GoogleChromePortable 谷歌chrome浏览器便携版官网下载方式
  17. 假设有100个瓶子,其中只有1瓶有毒药,你现在有7只老鼠,怎么检测出那一瓶是由毒的(老鼠喝到有毒的就会死)
  18. ROS获取串口信息及后续处理(以惯导IMU XW-GI5651为例)
  19. BOM(材料清单)整理及文件格式说明
  20. 论文阅读 | NIPS‘20 | Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs

热门文章

  1. Pygame实战:升级后的2048小游戏—解锁新花样,根本停不下来【附源码】
  2. 怎么查看电脑主板最大支持多大的内存
  3. c语言编程一张纸对折,关于一张纸的对折问题
  4. 上海大专计算机专业排名,2019上海软科世界一流学科排名计算机科学与工程专业排名乔治华盛顿大学排名第301-400...
  5. YOLOV5检测代码detect.py注释与解析
  6. PSV中国天气 V1.2.3
  7. 去哪儿网——项目管理平台助力研发效率提升
  8. 大众点评:开放质疑与阿里竞争
  9. 基于STM32F103智能小车黑线寻迹运动实验(有代码)
  10. 有赞数据中台建设实践