• 締切済み

Bitmapクラス

myuki1232の回答

  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.1

とりあえず、エラーメッセージをちゃんと書いてください。 それと、BitmapクラスとはどのBitmapクラスでしょうか? (CLI?)

関連するQ&A

  • BITMAPが...

    C++の講座を見てるのですが、そこで BITMAP bm; と書いてあるのですが、そのようにすると D:\homepage\VC++_Software\猫でも分かるsdk_26から\main.cpp(12) : error C2146: 構文エラー : ';' が、識別子 'bm' の前に必要です。 D:\homepage\VC++_Software\猫でも分かるsdk_26から\main.cpp(12) : error C2065: 'bm' : 定義されていない識別子です。 と出てきます だけど、BITMAPの前には「;」がちゃんとありますし どうすればいいのでしょうか?!

  • DLLからEXEのクラスを呼び出すとリンクエラーになります。

    私は昔VC++6.0を少し触っただけの初心者に近い状態のレベルです。 作っているプログラムは、1つのソリューションの中にEXE実行するプロジェクトとDLLを作るプロジェクトの2つプロジェクトを含んでいます。 DLL側からEXEのクラスを使用すると、ビルド時にリンクエラーになります。LNK2019でシンボルのエラーなのですが、なぜそうなのか?がわかりません。 ご教授いただけますでしょうか。 <ソリューションの構成> A ソリューション  Aプロジェクト(.exe) AAクラス ERR親クラス ← ERR子クラスの継承 Bプロジェクト(.dll) 静的リンク(.defファイル使用) BAクラス BAクラスの実装 {  try {   throw ERR子クラス } catch(ERR子クラス) { } } やりたいことは、BプロジェクトにあるERR子クラスをBプロジェクトと Cプロジェクトの両方で使用したいです。 ビルド時に上のBAクラスのERR子クラスのところでコンパイルはとおるのですが、リンクエラーになります。エラーコードはLNK2019です。 何が足りないのでしょうか? dllからexeのクラスを呼び出すようなことはできないのでしょうか? このやり方自体に問題があり、他の方法にする方がいいですか? ERR親クラス、ERR子クラスともヘッダー定義があり。 CAクラスのヘッダー定義内でinclude宣言しています。 versionはVC2003++です。 よろしくお願いします。

  • クラスのメンバ関数を別ファイルで定義したときのバグ

    C++ においてヘッダファイルで宣言したクラスのメンバ関数を別のソースファイルで定義して、コンパイルするとうまくいきません。エラーは出ないのですが、同名の何もしない関数としてコンパイルされているようなのです。クラスのメンバ関数を宣言したのと同じヘッダに書くとちゃんとコンパイルされます。 どうしてそうなるのか、いまいち原因がわかりません。

  • JavaでBitmapを圧縮しないでファイル保存

    javaで、android端末で実行する画像処理のアプリを作成しています。BitmapのデータをそのままBitmap形式でファイルに保存したいのですが、良い方法はありませんか。BitmapクラスをImageクラスまたはBufferedImageクラスに変換できれば、ImageIOを使って、ファイル書き込みや読み出しが簡単にできるのですが変換のやり方が分かりません。 Bitmapデータを圧縮して、Byte列に変換してからファイル書き込みを行う方法(bmp2dataなど)は、Webにいろいろ載っていますが、実行してみると時間がかかります。Bitmapを圧縮しないでそのままByte列に変換する方法があればよいのですが、探してみましたが見つかりません。どなたか良い方法をご存知でしたらお願いします。

  • HEW3とBorlandC++でクラス定義の違い???

    いつもお世話になってます! 超初心者です。 よろしくお願いしますm(__)m C++のヘッダファイルに、クラスの定義をしました。 mainプログラム内でそのクラスのオブジェクトを定義しました。 BorlandC++では、そのプログラムは問題なくコンパイル&実行できるのですが、 HEW3ですと、「語句の並びが文法にあっていません」という旨のエラーが出ます。 クラス定義も、一般の書籍に書いてあるとおりに定義しているし、BorlandC++ではエラーになりません。 HEWだと定義の仕方が特殊なのでしょうか?? 私の知識レベルではHEWのマニュアルが難しくてなかなか理解できません。 どうか初心者にもわかりやすく解説していただけませんでしょうか? よろしくお願いいたしますm(__)m

  • bitmap画像の保存がうまくいきません。

    VC++のMFC、ダイアログベースで画像処理のソフトを作っています。 処理した画像を保存したいのですが、「描画できませんでした」というメッセージのでるファイルになってしまい、うまく保存できません。 プログラムは以下のようになっていてピクチャーコントロールの変数をm_pict8にしています。また、画像は24ビットで240×320のものを保存します。 static LONG CalcScanLineByte(const LONG w, const WORD bpp) { return (((bpp * w) + 31) / 32) * 4; } //----------------------------------------------------------- void Cstart2Dlg::OnBnClickedButton10() //保存ボタン { CFileDialog myDLG(FALSE,"BMP","*.BMP",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"画像(*.BMP)|*.BMP||"); if(myDLG.DoModal() == IDOK){ CStdioFile fout(myDLG.GetPathName(),CFile::modeCreate | CFile::modeWrite|CFile::typeBinary); //ピクチャボックスからビットマップを取り出す HBITMAP hBitmap = m_pict8.GetBitmap(); //無いので処理できない if(hBitmap == NULL)return; //ビットマップの情報を取る BITMAP bitmap = {0}; ::GetObject(hBitmap, sizeof(bitmap), &bitmap); //4バイト調整したスキャンラインのサイズ const int iScanLineByte = ::CalcScanLineByte(240, bitmap.bmBitsPixel); //const int iScanLineByte = ::CalcScanLineByte(bitmap.bmWidth, bitmap.bmBitsPixel); //ファイルヘッダとビットマップヘッダ BITMAPFILEHEADER bmfh = {sizeof(bmfh)}; BITMAPINFOHEADER bmif = {sizeof(bmif)}; //ビットマップである事を示す名称 bmfh.bfType = ('M' << 8) | 'B'; //イメージデータへのオフセットはファイルヘッダ+ビットマップヘッダ bmfh.bfOffBits = sizeof(bmfh) + sizeof(bmif); //見ての通り bmif.biBitCount = 24; //24ビットの時はBI_RGBで固定 bmif.biCompression = BI_RGB; //常に1で固定 bmif.biPlanes = 1; //見ての通り bmif.biWidth = 240; bmif.biHeight= 320; //bmif.biWidth = bitmap.bmWidth; //bmif.biHeight= bitmap.bmHeight; //4バイト調整も含めた正確な合計バイトサイズが必要 bmif.biSizeImage = iScanLineByte * bmif.biHeight; //ファイルヘッダ→ビットマップヘッダの順番に書き出す fout.Write(&bmfh, sizeof(bmfh)); fout.Write(&bmif, sizeof(bmif)); //イメージデータをセーブする HDC hMemDC = ::CreateCompatibleDC(NULL); ::SelectObject(hMemDC, hBitmap); //yを縦幅-1から回転させないと上下逆転してしまう for(int y = bmif.biHeight - 1; y >= 0; --y) { //3バイトずつステップする for(int x = 0; x < iScanLineByte; x += 3) { const COLORREF cref = ::GetPixel(hMemDC, x / 3, y); //色素の位置関係をBGRにしないと赤と青の関係が逆転してしまう const BYTE arrBy[3] = {GetBValue(cref), GetGValue(cref), GetRValue(cref)}; //1ピクセル分(3バイト)書き出す fout.Write(arrBy, sizeof(arrBy)); } } ::DeleteDC(hMemDC); } どこか改善点などありましたら、よろしくお願いいたします。

  • クラスのスコープ範囲

    再度お世話になります。 C++のクラスについての質問ですが、 別ファイル(別のDLL)に定義されているメンバ関数を利用したいのですが、 どのように外部宣言すればよろしいのでしょうか。 どうぞ宜しくお願いします。 例) A.dll あるクラス内に格納されている値を取得する為に、 Get_XXXというメンバ関数が定義されている。 B.dll こちらからその値をそのメンバ関数を利用して取得する。

  • UNIXのC++で共通クラスを作ってみんなで使いたい。

    Linux上で稼動するあるC++のプログラムを作るのに、 みんなで使えるような、共通クラスを作りたいと思っています。 クラス自体の作り方(プログラムコード)はだいたい分かるのですが、 それをどのような形(lib?またはアーカイブ?またはdll?)で 配布すると、みんなが使いやすいものになるのかが分かりません。 手順など、どなたか教えてください。 私が何とか予想できる手順を以下に書きます。 (1)普通にクラスを作成する。(例えばaaa.cppと言う名前のファイルに)   public class AAA{ public: void init(); void clean(); private: int elems; } void AAA::init(){ elems = 0; } void AAA::clean(){ elems = 0; } ※この時点でクラスの定義部分だけをヘッダーファイルとして   別ファイルにしておいた方が良いのでしょうか? (2)このクラスをコンパイルして、みんなに提供できる何らかの形にする。  ※ここがよく分かりません!!  ※”.a”というアーカイブを作成する方法は知っています。   これを作れば良いのでしょうか? (3)出来上がった共通クラスをどうにかして、他の人のプログラムで使えるようにする。  ※予想としては、(1)で作ったクラス定義のヘッダーファイルを   includeする(のかな?)   それから、コンパイルする時にmakefileの中で(2)で作った   ライブラリ(?)を一緒にリンクする(のかな?)  ※プログラム中では、いきなり    AAA testBuf = new AAA(); testBuf.init(); などと使えるのでしょうか?

  • Visual C++ の大域変数

    VisualC++.NET を使ってソフトウェアを作っています(MFCを用いています)。 独自のクラスを新規に作成し、そのクラスの中身を格納したヘッダファイル、CPPファイルは自分で#includeで挿入する必要はあるのでしょうか? また、グローバル変数としてクラスを定義し、それを別のファイルから読み込もうとしても、「定義されていない識別子です。」とエラーメッセージが出てしまいます。 おそらくファイルの順番の問題だと思いますが、これらを解決する手段はありますか? よろしくお願いします。

  • 自動的に作られるresource.hについて

     WindowsAPIで分からないことがあるので尋ねに来ました。  プラットフォームはVS.NET2003でCで記述しています。 bitmapをリソースに取り込むと自動的にresource.hが作られますよね?  resource.hをプロジェクト内に作ったフォルダ内に入れて、("../****/resource.h"というふうにして)もう一回ビルドするとbitmapが表示されません。また、フォルダ内から出してそのままヘッダーファイルをインクルードしてもインクルードしてくれません。リソーススクリプト(.rc)の方で何かやらなければいけないのか、どうしたらbitmapが表示されるのか分かりません。  一応フォルダ内に入れないでそのままヘッダーファイルを読み込むと表示されます。しかし一度フォルダ内にいれて#include "../****/resource.h"とするとbitmapは表示されません。しかも戻して"resource.h"としても今度はERRORで"リソースIDが定義されていません"といわれてしまいます。 どうしてこうなるのでしょうか?