[转]在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,通过编译产生如此平等雨后春笋文件:

C语言 1

  inc32里边放C语言头文件。

  1.
现行自我要以VS2010之工程项目中动用到它,首先我一旦创建一个VC++.NET的品种,我这边开创了一个MFC应用程序:

C语言 2

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

C语言 3

  找到两个目录选项:

C语言 4

  其中包含目录指为你的Openssl的条文件之目,库目录指于而的Lib、Dll所于的目。
C语言 5

C语言 6

  从此间新建目录来针对引导之目:

  然后切换到“链接器”-> “输入”:

C语言 7

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

C语言 8

  这样即便到位了静态库的援。

  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文件,这里我沾已经制造好的文本C语言,方便大家用!

  Openssl最新版openssl-1.0.0d的Windows执行保证下载:openssl_out32dll.rar