[英]Reading a 32 bit integer from BYTE array. VC++
我创建了一个包含图像像素数据的BYTE数组。 图像是灰度级,每个像素强度是32位整数。 现在我想读取每个像素强度(32位int),然后对每个像素强度进行一些操作并存储修改后的像素强度(再次以32位int)。 所以我的问题是如何从BYTE数组中读取32位(或16位)整数。 (在VC ++ / MFC中工作)。
谢谢。
使用memcpy
将BYTE
数组中的数据转换为int32_t
(或uint32_t
)数组。
如果您不需要可移植性,那么您的体系结构可能允许将第一个BYTE
的地址转换为int32_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,它不会在向导生成的任何代码中公开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.