我创建了一个包含图像像素数据的 BYTE 数组。图像是灰度的,每个像素强度是一个 32 位整数。现在我想读取每个像素强度(32 位 int),然后对每个像素强度进行一些操作并存储修改后的像素强度(再次以 32 位 int 格式)。所以我的问题是如何从 BYTE 数组中读取 32 位(或 16 位)整数。(在 VC++/MFC 中工作)。
谢谢你。
我创建了一个包含图像像素数据的 BYTE 数组。图像是灰度的,每个像素强度是一个 32 位整数。现在我想读取每个像素强度(32 位 int),然后对每个像素强度进行一些操作并存储修改后的像素强度(再次以 32 位 int 格式)。所以我的问题是如何从 BYTE 数组中读取 32 位(或 16 位)整数。(在 VC++/MFC 中工作)。
谢谢你。
用于memcpy
将数据从您的数组中获取到(或)BYTE
数组。int32_t
uint32_t
如果您不需要可移植性,您的架构可能允许将第一个地址转换BYTE
为 aint32_t*
并就地使用它。
如果您的所有数据始终来自一个文件,并且不需要对单个字节进行任何处理,您可以直接将其读入int32_t
.
本·沃伊特
恕我直言,我完全不同意 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。