亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

Windows安裝配置C/C++(VS2017)OpenSSL開發環境配置教程

2020-01-26 14:00:52
字體:
來源:轉載
供稿:網友

OpenSSL開發環境配置教程分享給大家,具體內容如下

【環境信息】

Windows 10 Enterprise Version 10.0.15063

下載地址:http://www.itellyou.cn/

Visual Studio Enterprise 2017 Version 15.2(26430.12)

下載地址:https://www.visualstudio.com/downloads

OpenSSL v1.1.0f

下載地址:https://slproweb.com/products/Win32OpenSSL.html

【提醒事項】

1。安裝OpenSSL有兩種方法,第一種為下載OpenSSL源代碼并由自己編譯后使用;第二種為下載已編譯好的安裝包,安裝后直接可以使用。因第一種方法十分繁瑣,需要安裝Ruby進行編譯,同時編譯過程中可能產生各種各種的問題,因此在此采用第二種方法
2。每次新建工程之后都要配置一下OpenSSL開發環境
3。本人用的英文環境(英文操作系統+英文軟件),因此操作界面語言可能會和中文環境有些不同,但并不影響功能

【具體步驟】

1。下載編譯好的OpenSSL安裝包(下載地址見上方),此處有Win32和Win64可選,這里的位數指的是你調用OpenSSL開發出來的軟件的位數版本,而不是你計算機的位數。開發32位軟件選擇Win32,64位選擇Win64,如果同時需要開發32位和64位的則下載兩個。確定好位數后,下載Win32/64 OpenSSL v1.1.0f(版本號可能會因更新而有所不同),“Light版”為“輕量版”,即只包含了核心功能的版本,本文演示的為“非Light版”

2。下載完后打開安裝,選擇安裝位置,64位和32位不要安裝在同一個目錄下

這里寫圖片描述

3。選擇把dll復制到OpenSSL目錄下(主要是為了以后好找,如果選擇復制到Windows系統目錄下,天知道復制到哪里去了。。。)

這里寫圖片描述

4。安裝完成后,如果有捐款意向的可以捐款(別誤會我不是在打廣告。。。即使你捐款了我也拿不到一分錢),沒有意向則取消掉鉤,然后點“Finish”

這里寫圖片描述

5。新建一個解決方案,方便起見,這里新建一個控制臺應用程序,這里我沒有勾選“Create directory for solution”是因為這是一個單項目解決方案,所以我覺得沒有必要多創建一層文件夾

這里寫圖片描述

6。勾選“Empty project”(這個是個人習慣,可能鉤不鉤并沒有什么影響(“可能”這個詞就很騷了。。。))

這里寫圖片描述

7。右擊工程,選擇“Properties”

這里寫圖片描述

8。點擊左方的“VC++ Directories”,然后左上角選擇“All Configurations”

這里寫圖片描述

9。右上角選擇平臺,這里演示x64的,如果是開發Win32軟件就選Win32,如果要Win64和Win32兼顧,則分別配置一下(就是先選擇Win32進行配置,然后再選擇x64進行配置)

這里寫圖片描述

10。選中“Include Directories”,點擊右邊的下拉按鈕,點擊“Edit…”

這里寫圖片描述

11。點擊右上方的“New Line”按鈕,然后點擊新行右邊的“…”按鈕

這里寫圖片描述

12。在彈出的目錄選擇界面中選擇OpenSSL安裝目錄下的“include”文件夾,點擊“Select Folder”,再點擊“OK”完成添加

這里寫圖片描述

13。同樣的方法,將安裝目錄下的“lib”文件夾添加到“Library Directories”中

這里寫圖片描述

14。將OpenSSL安裝目錄下bin文件夾中的“libcrypto-1_1-x64.dll”和“libssl-1_1-x64.dll”(名字后面的版本號可能因更新而不同)復制到工程目錄下

這里寫圖片描述 

這里寫圖片描述

15。將工程平臺調整為自己需要的平臺,這里演示x64平臺

這里寫圖片描述

16。添加lib文件,這里有A、B兩種方法,分別列出:

16-A:

在代碼中添加

#pragma comment(lib,"libssl.lib")#pragma comment(lib,"libcrypto.lib")

這里寫圖片描述 

16-B:

在“Property Pages->Linker->Input->Additional Dependencies”添加libssl.lib和libcrypto.lib

這里寫圖片描述 

這里寫圖片描述

【測試代碼】

1。這段代碼是用C++和Windows API寫的
2。這里添加lib文件用的方法A,如果想用方法B則注釋或刪掉對應的“#pragma comment…”即可
3。這段代碼是用https://www.baidu.com來測試的,如果想要修改為其他測試地址,除了修改第25行的wstrHost外,還應修改第77行的strWrite

#include<tchar.h>#include<WinSock2.h>#include<WS2tcpip.h>#include<iostream>#include<openssl/ssl.h>#pragma comment(lib,"ws2_32.lib")#pragma comment(lib,"libssl.lib")#pragma comment(lib,"libcrypto.lib")CONST INT RECV_SIZE = 8192;INT _tmain(INT argc, LPTSTR argv[]){ //啟動wsa WSADATA wsadData; WSAStartup(MAKEWORD(2, 2), &wsadData); //獲取Host的IP地址等信息 ADDRINFOT aiHints; ZeroMemory(&aiHints, sizeof(ADDRINFOT)); aiHints.ai_family = AF_INET; aiHints.ai_flags = AI_PASSIVE; aiHints.ai_protocol = 0; aiHints.ai_socktype = SOCK_STREAM; std::wstring wstrHost = TEXT("www.baidu.com"); PADDRINFOT paiResult; GetAddrInfo(wstrHost.c_str(), NULL, &aiHints, &paiResult); //創建套接字 SOCKET sSocket = socket(AF_INET, SOCK_STREAM, 0); if (sSocket == SOCKET_ERROR) {  std::wcout << "Error socket" << std::endl;  return -1; } //連接Host SOCKADDR_IN sinHost; sinHost.sin_addr = ((LPSOCKADDR_IN)paiResult->ai_addr)->sin_addr; sinHost.sin_family = AF_INET; sinHost.sin_port = htons(443); if (connect(sSocket, (LPSOCKADDR)&sinHost, sizeof(SOCKADDR_IN)) == SOCKET_ERROR) {  std::wcout << "Error connect" << std::endl;  return -1; } //初始化OpenSSL庫 //(雖然不知道為什么,但是不加這三行似乎并不會導致什么問題,在不加這3行的情況下測試了幾個網站并沒有發現任何問題喵) SSL_library_init(); SSLeay_add_ssl_algorithms(); SSL_load_error_strings(); //創建SSL會話環境等 SSL_CTX *pctxSSL = SSL_CTX_new(TLSv1_2_client_method()); if (pctxSSL == NULL) {  std::wcout << "Error SSL_CTX_new" << std::endl;  return -1; } SSL *psslSSL = SSL_new(pctxSSL); if (psslSSL == NULL) {  std::wcout << "Error SSL_new" << std::endl;  return -1; } SSL_set_fd(psslSSL, sSocket); INT iErrorConnect = SSL_connect(psslSSL); if (iErrorConnect < 0) {  std::wcout << "Error SSL_connect, iErrorConnect=" << iErrorConnect << std::endl;  return -1; } std::wcout << "SSL connection using " << SSL_get_cipher(psslSSL) << std::endl; //發包 std::string strWrite =  "GET https://www.baidu.com/ HTTP/1.1/r/n"  "Host: www.baidu.com/r/n"  "Connection: close/r/n/r/n"; INT iErrorWrite = SSL_write(psslSSL, strWrite.c_str(), strWrite.length()) < 0; if (iErrorWrite < 0) {  std::wcout << "Error SSL_write" << std::endl;  return -1; } //收包并輸出 //這里接受的是char形式的,所以中文會亂碼 //如果要正常顯示中文,需要再轉換為wchar_t或std::wstring LPSTR lpszRead = new CHAR[RECV_SIZE]; INT iLength=1; while (iLength >= 1) {  iLength = SSL_read(psslSSL, lpszRead, RECV_SIZE - 1);  if (iLength < 0)  {   std::wcout << "Error SSL_read" << std::endl;   delete[] lpszRead;   return -1;  }  lpszRead[iLength] = TEXT('/0');  std::wcout << lpszRead; } delete[] lpszRead; return 0;}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人综合亚洲| 久久久久久69| 久久久国产精品视频| 欧美一级免费视频| 欧美日本黄视频| 中文字幕在线看视频国产欧美在线看完整| 91香蕉嫩草神马影院在线观看| 成人免费视频网| 亚洲石原莉奈一区二区在线观看| 九色91av视频| 国产成人高清激情视频在线观看| 国内精品久久久久久中文字幕| 欧美日韩aaaa| 亚洲xxxx在线| 日韩av在线电影网| 91av中文字幕| 中文字幕在线看视频国产欧美在线看完整| 国产亚洲一区二区精品| 美女扒开尿口让男人操亚洲视频网站| 欧美日韩视频在线| 免费99精品国产自在在线| 日韩免费在线看| 欧美午夜宅男影院在线观看| 成人淫片在线看| 国产精品人人做人人爽| 亚洲欧美国产va在线影院| 俺去啦;欧美日韩| 理论片在线不卡免费观看| 日韩中文字幕在线播放| 国产精品久久视频| 欧美日韩在线影院| 国产主播喷水一区二区| 欧美一二三视频| 91精品中国老女人| 国产专区精品视频| 国产精品亚洲片夜色在线| 疯狂蹂躏欧美一区二区精品| 国产午夜精品久久久| 亚洲精品自产拍| xxxx欧美18另类的高清| 国产精品777| 欧美大片免费观看在线观看网站推荐| 成人www视频在线观看| 欧美亚洲国产成人精品| 欧美老妇交乱视频| 亚洲国产小视频在线观看| 91精品久久久久久久久青青| 在线精品高清中文字幕| 久久久天堂国产精品女人| 日韩视频免费中文字幕| 国产精品欧美久久久| 亚洲精品免费一区二区三区| 国产成人高清激情视频在线观看| 91色精品视频在线| 国产日产欧美a一级在线| 久久伊人色综合| 高清欧美性猛交xxxx黑人猛交| 亚洲成人999| 久久国产精品网站| 国产中文字幕日韩| 国产自摸综合网| 国产视频精品一区二区三区| 91在线视频一区| 日韩av中文字幕在线播放| 青草成人免费视频| 国产精品亚洲第一区| 日韩av综合网| 国产午夜精品一区二区三区| 亚洲精品视频在线播放| 最近2019中文免费高清视频观看www99| 97在线观看视频| 日韩欧美成人免费视频| 亚洲深夜福利视频| 国产91久久婷婷一区二区| 91久久精品美女| 色综久久综合桃花网| 久久97精品久久久久久久不卡| 亚洲第一级黄色片| 中文字幕亚洲字幕| 亚洲欧洲自拍偷拍| 国产欧美中文字幕| 国产噜噜噜噜久久久久久久久| 亚洲综合国产精品| 亚洲欧洲日产国码av系列天堂| 国产精品视频99| 欧美大尺度电影在线观看| 久久久国产视频91| 国产一区二区三区直播精品电影| 国产精品国模在线| 亚洲成人激情视频| 亚洲欧洲一区二区三区在线观看| 日韩大片在线观看视频| 国产精品www网站| 色婷婷**av毛片一区| 国产精品第二页| 亚洲免费高清视频| 亚洲欧美在线第一页| 亚洲人成啪啪网站| 另类少妇人与禽zozz0性伦| 国产一区私人高清影院| 精品欧美aⅴ在线网站| 亚洲成人999| 成人深夜直播免费观看| 国产精品第七影院| 国产精品欧美日韩久久| 亚洲欧洲激情在线| 国模视频一区二区三区| 国产精品99久久久久久人| 法国裸体一区二区| 欧美日韩裸体免费视频| 午夜精品99久久免费| 国产又爽又黄的激情精品视频| 欧美日韩一区二区在线播放| 欧洲成人免费视频| 亚洲欧美制服第一页| 欧美黑人xxx| 精品福利樱桃av导航| 欧美成人精品一区二区| 亚洲激情视频在线观看| 亚洲美腿欧美激情另类| 欧美国产日韩中文字幕在线| 国产亚洲成av人片在线观看桃| 亚洲色图13p| 亚洲精品资源在线| 8x海外华人永久免费日韩内陆视频| 久久国产精品影片| 96pao国产成视频永久免费| 国产精品国语对白| 77777少妇光屁股久久一区| 亚洲精品久久久久久久久久久| 91国语精品自产拍在线观看性色| 久久视频中文字幕| 97精品国产97久久久久久| 亚洲成人av在线播放| 国产精品国产福利国产秒拍| 亚洲精品网址在线观看| 国产精品久久久久久久久久久新郎| 精品亚洲精品福利线在观看| 国产精品久久久久久久久粉嫩av| 亚洲字幕在线观看| 欧美日韩另类字幕中文| 琪琪第一精品导航| 久久精品国产91精品亚洲| 日韩在线观看精品| 国产精品久久二区| 欧美亚洲伦理www| 欧美香蕉大胸在线视频观看| 亚洲三级黄色在线观看| 国产精品国模在线| 国内揄拍国内精品少妇国语| 日韩电影在线观看永久视频免费网站| 国产精品久久在线观看| 91av在线免费观看| 97精品国产97久久久久久| 亚洲天堂免费视频| 91在线直播亚洲| 精品动漫一区二区三区| 中国人与牲禽动交精品| 成人性生交大片免费看视频直播| 欧洲一区二区视频| 亚洲自拍偷拍第一页| 91影院在线免费观看视频| 久久久av网站| 久久综合网hezyo|