現在、Cairoを使用してVisual C++2010の既存のGDI/GDI +コードを置き換えるテストを行っていますが、正常に機能しているようですが、アプリケーションを閉じるたびにエラーメッセージが表示されます。
「CairoTest.exeの0x68e629dcでの初回例外:0xC0000005:アクセス違反の読み取り場所0xabababa7」
このエラーは、アプリケーションの実行中にcairo_paint(cr)を呼び出した場合にのみ発生します。この行をコメントアウトすると、表示されなくなります。これまでの私のアプリケーションの唯一のCairoコードは:
CChildView::CChildView()
{
testsurface = cairo_image_surface_create_from_png("BlackShinyBackground.png");
}
CChildView::~CChildView()
{
cairo_surface_destroy(testsurface);
}
void CChildView::OnPaint()
{
CPaintDC dc(this);
cairo_surface_t *surface = cairo_win32_surface_create(dc.m_hDC);
cairo_t *cr = cairo_create (surface);
cairo_set_source_surface(cr, testsurface, 0, 0);
cairo_paint(cr);
cairo_destroy (cr);
cairo_surface_destroy (surface);
}
誰かが私が間違っている方向に私を向けることができますか?
私が言ったように、コードは正常に機能しているように見えますが、エラーが表示されるタイミングに関係なく、ただ耕すのは好きではありません。