0

首先,我是 c/c++ 的新手,我的问题的答案可能对你来说非常简单。

我必须将数据从单色 .bmp(扫描元素的 2D 形状)移动到布尔数组(0-白色,1-黑色)。我找到了这个主题: Converting 1-bit bmp file to array in C/C++

我必须做同样的事情,但这段代码是 C 代码,我需要在 C++ 中完成,所以我必须如何更改它才能在 C++ 中工作?(我正在使用 VSexpress 2010)

编辑 1:此 bmp 为 144x320 像素

编辑2:我看到你甚至看代码,指针错误C2440存在问题:'初始化':无法从'void *'转换为'unsigned char'1 >从'void '转换为指向非'的指针void' 需要显式强制转换: unsigned char *img = malloc(w * h), *data = malloc(fileSize);

4

2 回答 2

0

考虑到使用的函数很常见,我认为 C 代码将主要在 C++ 中运行而无需任何修改。您可以将文件操作更改为 use fstream,但 usingfopen和 C 函数也应该可以工作。

于 2013-10-22T07:38:22.310 回答
0

您链接到的 C 代码应该像在 C++ 中一样工作 - 后者是前者的超集。您当然可以将 C 代码迁移到 C++ 习惯用法(使用 STL 等),但我建议不要这样做。

但是请注意,如果所述代码无法编译,可能是因为您的 C++ 编译器要求高标准尊重,因此(请参阅此处为什么)“#include <stdio.h>”应替换为“#include <cstdio>” ,“#include <string.h>”由“#include <cstring>”,“#include <memory.h>”由“#include <cstdlib>”。

于 2013-10-22T07:40:30.637 回答