我這裡使用vc6來演示是因為最近我用vc6比較多,其實用新版的visual studio 2019做法是類似的。
本文參考了這篇部落格,他介紹得比較詳細,大家有興趣可以去看看
首先,想要在檔案中嵌入資料,最暴力的做法是將檔案通過xxd工具轉換成字元陣列,寫入到原始碼中。我之前寫了一篇部落格介紹這種做法:
用陣列儲存二進位制資料
這種做法簡單粗暴,缺點是編譯時間比較長,**也比較長(莫名其妙就幾十萬行**了)。不推薦這種做法,更好的做法是使用自定義資源。
要在vc6中使用資源,首先要新建乙個資源指令碼
然後在資源檢視中新建一種資源,我這裡命名為binary
建立了自定義資源型別後,右鍵資源型別,點import
然後選擇想要匯入的檔案即可。比如我這裡匯入了乙個exe
資源id可以右鍵-屬性進行修改,待會要用到這個id
下面給出乙個簡單的win32應用程式,演示如何使用剛才匯入的exe資源。
程式的功能是將該exe讀取到記憶體中,然後寫入到磁碟裡。
bool usecustomresource()
// 獲取資源大小
dword dwsize =
sizeofresource
(null
, hrsrc);if
(0== dwsize)
// 載入資源到記憶體中
hglobal hglobal =
loadresource
(null
, hrsrc);if
(null
== hglobal)
// 獲取資源資料指標
lpvoid pbuffer =
lockresource
(hglobal);if
(null
== pbuffer)
// 寫入磁碟
file *fp =
fopen
("c:\\out.exe"
,"wb");
if(null
!= fp)
fclose
(fp);}
messagebox(0
,"成功",0
,0);
return true;
}
至此演示完畢,資源裡的exe程式已經寫入到c盤下。
與原檔案比較,完全一致。
WPF 資源 二進位制資源
二進位制資源可以用3種不同的的方式進行打包 嵌入程式集。在編譯時應用程式已知的鬆散檔案。在編譯時應用程式不知道的鬆散檔案。設定檔案的生成操作 將資源放入程式集中。將資源作為乙個鬆散檔案,但向程式集種新增乙個定製特性,該程式集將記錄檔案是否存在及其相對位置。注意 不要使用嵌入式資源 embedded ...
6 二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 解題思路 二進位制求和,滿二進一 include include using namespace ...
二進位制運算使用
問題 寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。分析 1 二進位制異或將得到他們的非進製部分。2 二進位制相與並左移一位,等效於進製。3 重複上述步驟 知道進製為0.code public int add int num1,int num2 return num1 參考 ww...