[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)
本文转自:http://kb.cnblogs.com/page/94467/
Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。
首先下载Openssl包:(http://www.openssl.org/),这是一个C语言类库包,在Windows下可以通过Perl对该类库包进行MakeBuild,产生libeay32、ssleay32的Lib以及Dll文件,具体操作详见:http://blogger.org.cn/blog/more.asp?name=OpenSSL&id=18972,通过编译产生这样一系列文件:

inc32里面放置C语言头文件。
1. 现在我要在VS2010的工程项目中使用到它,首先我要创建一个VC++.NET的项目,我这里创建了一个MFC应用程序:

在项目名称中点击“右键”,选择“属性”,从里面找到“VC++目录”:

找到两个目录选项:

其中包含目录指向你的Openssl的头文件的目录,库目录指向你的Lib、Dll所在的目录。 

从这里新建目录来指向引导的目录:
然后切换到“链接器”-> “输入”:

在“附加依赖项”中,加入两个Lib文件:

这样就完成了静态库的引用。
2. 现在看下项目中怎么引用它(以SHA256算法为例):
#include <openssl/sha.h>
方法展示:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// SHA256算法字符串加密void sha256(char* string, char outputBuffer[64]){ unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_CTX sha256; SHA256_Init(&sha256); SHA256_Update(&sha256, string, strlen(string)); SHA256_Final(hash, &sha256); int i = 0; for(i = 0; i < SHA256_DIGEST_LENGTH; i++) { sprintf(outputBuffer + (i * 2), "%02x", hash[i]); }} |
调用:
|
1
2
|
static unsigned char buffer[64];sha256(signature, (char*)buffer); |
由于Openssl包需要利用Perl进行编译形成Lib以及Dll文件,这里我附上已经制作好的文件,方便大家使用!
Openssl最新版openssl-1.0.0d的Windows执行包下载:openssl_out32dll.rar
[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)的更多相关文章
- VS2010 VC++ 项目添加引用 出现 Internal CPS Error问题原因及解决办法
在VS2010 VC++ 项目添加引用时,有时会出现Internal CPS Error错误,提示信息: 'Internal CPS Error: We couldn't find the exist ...
- 使用Reveal.app调试整个项目UI时间,增加LD指令 -Objc引起项目中多个静态库冲突问题
今天接触到一个新的UI调试工具教程如下: iOS真机UI调试利器——Reveal 引入增加-ObjC -framework Reveal指令后,发现项目出现多重静态库冲突问题, 首先介绍一个指令: - ...
- vc项目中加载多个lib遇到的问题
一个VC项目中 在网络加密 json解析等方面 加载了多个第三方库和文件 boost cryptpp rapidjson mysql的连接池等等 在使用mysql++的时候 多次报错 LNK 20 ...
- ios项目中引用其他项目复习
ios项目中引用其他开源项目,今天再次复习了,记个备注. 1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Li ...
- ASP.NET项目中引用全局dll
在ASP.NET项目中,有些dll是全局dll,也就是说,没有放在单个项目的引用中.它们一般存放在如下目录C:\Windows\assembly中 这个时候,我们需要在单个项目中引用他们,应该如何做呢 ...
- ASP.NET CORE MVC 2.0 项目中引用第三方DLL报错的解决办法 - InvalidOperationException: Cannot find compilation library location for package
目前在学习ASP.NET CORE MVC中,今天看到微软在ASP.NET CORE MVC 2.0中又恢复了允许开发人员引用第三方DLL程序集的功能,感到甚是高兴!于是我急忙写了个Demo想试试,我 ...
- 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!
擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...
- Android Studio 在项目中引用第三方jar包
在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { ...
- springboot项目中引用其他springboot项目jar
1. 剔除要引入的springboot项目中不需要的文件:如Application和ApplicationTests等 2.打包 不能使用springboot项目自带的打包插件进行打包: 3.打包 4 ...
随机推荐
- BaseColumns以及自定义Column
android provider 包下自带的BaseColumn /* * Copyright (C) 2006 The Android Open Source Project * * License ...
- 数列(codevs 1141)
题目描述 Description 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13 ...
- 【学习笔记】移动Web手册(PPK力作)
又是好久没写博客了,最近把近半年的总结,全部总结到博客园吧.先写最近的一个移动端的学习笔记.毕竟移动端开发了一段时间,就写一写读<移动web手册>中,对我感触比较深的几个点—— 一.浏览器 ...
- java容器---集合总结
思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定 ...
- 微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨
sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed ...
- linux下用top命令查看cpu利用率超过100%
今天跑了一个非常耗时的批量插入操作..通过top命令查看cpu以及内存的使用的时候,cpu的时候查过了120%..以前没注意..通过在top的情况下按大键盘的1,查看的cpu的核数为4核. 通过网上查 ...
- Linux下压缩与解压命令tar
Linux下常见压缩文件的扩展名 *.gz:gzip压缩的: *.bz2:bzip2压缩的: *.tar:tar程序打包但没有压缩的: *.tar.gz:打包后并经过gzip压缩的: *.tar.bz ...
- js:数据结构笔记2---列表
列表: 定义:一组有序的数据: function List() { this.listSize = 0; this.pos = 0; this.dataStore = []; this.find = ...
- [LintCode] Permuation Index
Given a permutation which contains no repeated number, find its index in all the permutations of the ...
- BZOJ3682 : Phorni
后缀平衡树+线段树. $O(1)$比较大小的标号法真是强大. #include<cstdio> #include<cmath> #define N 300010 #define ...