2012-06-07 89 views
0

我創建了一個包含圖像像素數據的BYTE數組。圖像是灰度,每個像素的亮度是一個32位的整數。現在我想讀取每個像素強度(32位整數),然後對每個像素強度執行一些操作並存儲修改的像素強度(再次以32位整數值)。所以我的問題是如何從BYTE數組讀取32位(或16位)整數。 (在VC++/MFC中工作)。從BYTE數組中讀取一個32位整數。 VC++

謝謝。

+0

你知道數組的字節順序嗎? –

+0

你是如何創建BYTE數組而不知道如何執行此操作的? –

+0

不,我不知道。 – UNK

回答

2

使用memcpy可將數組中的數據從​​獲取到int32_t(或uint32_t)的數組。

如果你不需要可移植性,你的體系結構可能允許將第一個​​的地址轉換爲int32_t*並在原地使用它。

如果你的所有數據總是來自一個文件,並且沒有什麼需要在單個字節上工作,你可以直接將它讀入一個int32_t的數組中。

0

本·福格特

恕我直言,我完全與DllMain是因爲不是強制性的這一說法。您提供的鏈接有誤導性信息。

每個可執行模塊(exe或DLL)必須有一個入口點。否則系統將無法啓動任何程序。

因此定義和實現一個入口點是必須的。

UNK

如果您創建的Win32或MFC擴展DLL,嚮導插入入口點在兩個項目。 MFC使用DllMain,而Win32使用的_tmain被定義爲用於Unicode的wmain或用於ANSI的main。兩者都只是名稱的佔位符,可以更改(但爲什麼打擾)。

您必須創建MFC規則DLL。這種類型的DLL也有一個入口點,但它不會在嚮導創建的任何源文件中公開。 它被稱爲__DllMainCRTStartup並駐留在crtdll.c中。

對於MFC規則DLL,請使用應用程序的InitInstance來初始化您的dll。順便說一句:任何MFC應用程序也有WinMain,不會在嚮導生成的任何代碼中公開。