0

まず第一に、私は c/c++ の初心者であり、おそらく私の質問に対する答えはあなたにとって非常に簡単になるでしょう。

データをモノクロ .bmp (要素の 2D 形状をスキャン) から bool 配列 (0 - 白、1 - 黒) に移動する必要があります。このトピックを見つけました: Converting 1-bit bmp file to array in C/C++

私は同じことをしなければなりませんが、このコードはCであり、C++で行う必要があるので、C++で機能するように変更するにはどうすればよいですか? (私はVSexpress 2010を使用しています)

編集 1: この bmp は 144x320 ピクセルです

編集 2: コードを見てもわかりません。ポインタ エラー C2440 に問題があります: 'initializing' : cannot convert from 'void *' to 'unsigned char ' 1> Conversion from 'void ' to pointer to non-' void' には明示的なキャストが必要です: unsigned char *img = malloc(w * h), *data = malloc(fileSize);

4

2 に答える 2

0

使用される関数が非常に一般的であることを考えると、C コードはほとんど変更なしで C++ で動作すると思います。ファイル操作を を使用するように変更できますが、および C 関数fstreamを使用しても機能するはずです。fopen

于 2013-10-22T07:38:22.310 に答える
0

リンク先の C コードは、C++ でそのまま動作するはずです。後者は前者のスーパーセットです。もちろん、C コードを C++ イディオムに (STL などを使用して) 移行することもできますが、私はそれをお勧めしません。

ただし、上記のコードがコンパイルされない場合は、C++ コンパイラが高水準の尊重を要求している可能性があることに注意してください。したがって、(ここで理由を参照してください)「#include <stdio.h>」は「#include <cstdio>」に置き換えられます。 、「#include <cstring>」による「#include <string.h>」、「#include <cstdlib>」による「#include <memory.h>」。

于 2013-10-22T07:40:30.637 に答える