0

FLTKを使用してC++プログラムでxpmファイルを描画しようとしています。

これがコードです

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "image.xpm"
#include <FL/Fl_Pixmap.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Image.H>
int main(int argc, char ** argv)
{
  Fl_Window *window = new Fl_Window(800,650);
  Fl_Pixmap pix(XFACE);
  pix.draw(200,200);
  window->end();
  window->show(argc,argv);
  return Fl::run();
}

XFACEは、「image.xpm」内の有効なxpmオブジェクトです。

しかし、pix.draw()行でセグメンテーション違反が発生しています。
これの原因は何ですか?

4

2 に答える 2

3
/* Try this - this works for me, and I guess is what you meant! */

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Pixmap.H>

#include "image.xpm"

int main(int argc, char ** argv)
{
    Fl_Window *window = new Fl_Window(800,650);
    Fl_Box *image_box = new Fl_Box(5, 5, 790, 640);
    Fl_Pixmap pix(XFACE);
    window->end();
    image_box->image(pix);
    window->show(argc,argv);
    return Fl::run();
}

/* end of file */
于 2012-06-18T10:25:39.457 に答える
0

正直なところ、それは有効なfltkコードのようにも見えません。draw()メソッドを直接呼び出しており、fltkではほとんど有効ではないAFAIKです。

あなたはおそらく彼らのメーリングリストで質問したいと思うでしょう-彼らはかなり敏感です。

また、tarballの「test」フォルダーにあるpixmapデモをご覧になりましたか?それが何をするのかを確認してから、コピーしてください。

于 2012-06-18T10:11:10.417 に答える