VC6匯入和使用二進位制資源

2021-10-07 23:46:10 字數 1746 閱讀 2016

我這裡使用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...