VS編譯環境下如何對原始碼進行保護

2021-08-20 21:33:04 字數 1327 閱讀 6932

當我們寫了一段**,實現了乙個了不起的功能,在既想保護自己原始碼不被使用者看到,又想讓使用者正常使用這項功能,在vs編譯器中,可以通過以下操作來達到這個目的。

標頭檔案與原始檔分離

在完成乙個工程時,我們把函式的宣告部分和定義部分通過不同的檔案型別來存放。

函式宣告部分採用如下書寫格式是為了確保該標頭檔案只被引用一次,提高當頭檔案被引用多次時**的效率。

#ifndef __add_h__

#define __add_h__

#include "add.h"

//函式宣告

int add(int x, int y);

#endif//__add_h__

將實現功能的原始碼和標頭檔案生成乙個靜態庫

任意新建乙個空專案,將原始碼和標頭檔案放入該工程的生成的檔案目錄下,通過在vs端開啟該工程,匯入原始碼和標頭檔案。

如圖,右擊專案名選擇屬性選項,在開啟的頁面中更改配置型別為靜態庫,應用後確定退出。

按f7會將匯入的原始碼和標頭檔案生成乙個能實現功能的靜態庫。

開啟生成的靜態庫發現,原來清晰的**已經面目全非。

將生成的靜態庫放在需要該功能的工程目錄底下

開啟該工程的檔案,在debug目錄底下會生成乙個.lib的檔案,將該檔案貼上到需要實現該功能的工程目錄底下。

靜態庫雖然已經生成,但還需要標頭檔案來供使用者調庫使用,所以應把頭檔案發給使用者。必要的情況下可以在標頭檔案中注釋每乙個庫函式的功能、引數和返回值,以方便使用者使用。

而當使用者在自己的工程底下需要使用該函式時,只需通過以下**呼叫後台存放的靜態庫即可

#pragma comment(lib,"add.lib")
以此便很好的將原始碼保護了起來。

效果演示

對python原始碼進行編譯,加密python指令碼

對python原始碼進行編譯 1.生成.pyc檔案 import py compile py compile.compile hello.py 2.優化原始碼檔案 python o m py compile 1.py 生成.pyo檔案 例子 1 root lvs master tool python...

Linux環境下原始碼編譯安裝MySQL5 5

msyql公升級到5.5版本之後,原始碼編譯配置工具換成了cmake,編譯方式及載入的引數較之以前都有不小的變化,本節以實戰形式詳盡描述rhel5環境下,原始碼編譯安裝mysql5.5的各個步驟。安裝的詳細操作步驟請看官們注意了,往下瞅 安裝依賴包 yum install y openssl ope...

如何編譯Docker原始碼

docker的編譯環境實際上是建立乙個docker容器,在容器中對 進行編譯。如果想快速的檢視編譯環境搭建指導,而不關注環境搭建的機制和細節,可以直接跳到最後一章 總結 官方給的編譯方法是make build 和 make binary等。下面先分析makefile,看懂makefile後,編譯環境...