c++加密庫botan混合編譯和簡單使用
最近要用到加密資料,找了半天,有許多加密庫:
首先,我不想用lib或者dll,於是乎想直接生成.h和.cpp檔案加入工程使用。好在botan支援我的這種想法,我試了其他的幾種庫,不是使用靜態庫就是使用動態庫,並沒有辦法直接將.h和.cpp檔案加入工程編譯。
3.找到安裝的python目錄,複製python.exe的路徑,我的是c:\python27\python.exe,開啟vs2008命令提示工具,定位到botan解壓後的資料夾根目錄下,將複製的python.exe路徑貼上,然後編輯成如下語句:c:\python27\python.exe configure.py --c=msvc --gen-amalgamation 回車,之後會在botan根目錄下生成botan_all.cpp和botan_all.h兩個檔案,這正是我們需要的。
4.新建控制台工程,將生成的cpp和h檔案加入工程中,測試**如下:
#include "stdafx.h"
#include "botan_all.h"
using
namespace botan;
#include
#include
using
namespace
std;
string cryptoaes(string input,string passphrase/*密碼種子,md5加密後作為金鑰*/,cipher_dir opt)
else
if(opt==decryption)
return output;
}int main(int argc, char* argv)
getchar();
return
0;}
如果編譯不通過,在工程巨集定義處加入巨集nominmax ,可以解決問題。參考資料: C 和 C 混合編譯簡述
一 extern c 的作用 最重點 1.extern c 的真實目的是實現類c和c 的混合程式設計。extern c 是由 提供的乙個連線交換指定符號,用於告訴 這段 是 函式。extern c 後面的函式不使用的c 的名字修飾,而是用c。這是因為c 編譯後庫中函式名會變得很長,與c生成的不一致,...
c和c 混合編譯的問題(extern C )
1.引言 c 語言的建立初衷是 a better c 但是這並不意味著c 中類似c語言的全域性變數和函式所採用的編譯和連線方式與c語言完全相同。作為一種欲與c相容的語言,c 保留了一部分過程式語言的特點 被世人稱為 不徹底地物件導向 因而它可以定義不屬於任何類的全域性變數和函式。但是,c 畢竟是一種...
C與C 混合程式設計 編譯
1.工程檔案架構 drwxrwxr x 3 joshyoby joshyoby 4096 2月 25 15 03 drwxrwxr x 8 joshyoby joshyoby 4096 2月 25 14 45 rw rw r 1 joshyoby joshyoby 671 2月 25 14 58 m...