我创建了一个包含图像像素数据的BYTE数组。图像是灰度级,每个像素强度是32位整数。现在我想读取每个像素强度(32位int),然后对每个像素强度进行一些操作并存储修改后的像素强度(再次以32位int)。所以我的问题是如何从BYTE数组中读取32位(或16位)整数。 (在VC ++ / MFC中工作)。
谢谢。
答案 0 :(得分:2)
使用memcpy
将BYTE
数组中的数据转换为int32_t
(或uint32_t
)数组。
如果您不需要可移植性,您的架构可能允许将第一个BYTE
的地址转换为int32_t*
并在原地使用它。
如果您的所有数据始终来自某个文件,并且不需要处理单个字节,则可以直接将其读取到int32_t
数组中。
答案 1 :(得分:0)
Ben Voigt
在充分尊重的情况下,我完全不同意DLLMain不是强制性的声明。您提供的链接有误导性信息。
每个可执行模块(exe或DLL)都有入口点。否则系统将无法启动任何程序。
因此,定义和实现入口点是必须的。
<强> UNK 强>
如果您创建Win32或MFC扩展dll,向导会在两个项目中插入入口点。 MFC使用DllMain和Win32使用_tmain,其定义为Unicode的wmain或ANSI的main。两者都只是名称的占位符,可以更改(但为什么要麻烦)。
您必须已创建 MFC常规DLL 。这种类型的dll也有一个入口点,但它不会在向导创建的任何源文件中公开。 它被称为__DllMainCRTStartup并驻留在crtdll.c中。
对于MFC常规DLL,使用app的InitInstance来初始化你的dll。
顺便说一句:任何MFC应用程序也有WinMain,它不会在向导生成的任何代码中公开。