0

次のコードでカラーエントリを割り当て、それを使用して正しく描画します。

char *color_name = "red";
XColor color, exact;

XAllocNamedColor(display, colormap, color_name, &color, &exact);

次に、カラーエントリが不要になったときに、それを解放しようとします。

XFreeColors(display, colormap, &color.pixel, 1, 0);

この呼び出しは次のエラーを生成します:

 Error of failed request:  BadAccess (attempt to access private resource denied)
 Major opcode of failed request:  88 (X_FreeColors)
 Serial number of failed request:  17
 Current serial number in output stream:  19

私が間違っていることはありますか?そのカラーエントリを解放するにはどうすればよいですか?そのカラーエントリは解放する必要がありますか?

4

1 に答える 1

1

解決済み:XFreeColorsに対して2つの呼び出しを行っていました:

XFreeColors(display, colormap, &color.pixel, 1, 0);
XFreeColors(display, colormap, &exact.pixel, 1, 0);

正確な2回目の呼び出しは実行しないでください。必要ありません。

于 2009-07-08T11:06:38.590 に答える