[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...

はじめまして。

12 messages 2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法 — "U.Nakamura" <usa@...> 2009/12/17

こんにちは、なかむら(う)です。

[ruby-list:46630] Re: rcairo:はみ出しで例外

From: Kouhei Sutou <kou@...>
Date: 2009-12-12 01:31:25 UTC
List: ruby-list #46630
須藤です。

In <4B225407.9050406@moji.gr.jp>
  "[ruby-list:46626] rcairo:はみ出しで例外" on Fri, 11 Dec 2009 23:15:42 +0900,
  "5.5" <5.5@moji.gr.jp> wrote:

> rcairo で,PDFSurface に文字を書く際,一定量以上のはみだしがあると
> NoMemoryError 例外が発生します。
> 
> 再現コードは以下です:
> 
> -- NoMemoryError.rb ------
> require 'rubygems'
> gem 'cairo'
> require 'cairo'
> 
> p Cairo::BINDINGS_VERSION, Cairo::BUILD_VERSION
> 
> surface=::Cairo::PDFSurface.new "result.pdf", 100, 100
> context=::Cairo::Context.new surface
> context.move_to 90, 50
> context.show_text "foo bar baz foo bar baz "
> surface.finish
> --------------------------

手元(Debian GNU/Linux sid)で試してみたのですが、再現しませ
んでした。

> 以下のように表示されます。
> 
> --------------------------
> [1, 8, 0, nil]
> [1, 8, 0]
> _cairo_win32_scaled_font_init_glyph_metrics:GetGlyphOutlineW: この操作を
> 正しく終了しました。
> NoMemoryError.rb:11:in `finish': out of memory (NoMemoryError)
>         from NoMemoryError.rb:11
> --------------------------

メッセージを見るとWindows特有に見えます。システムのエラーメッ
セージをちゃんと取得できていないようですが。
# GetLastError()を呼ぶタイミングが遅いのかしら。でも、すぐ呼
# んでいるように見えるんだけど。。。

> rcairo は gem で入れた最新版です。

cairoの最新安定版ではエラーが起きてそうなところのコードも変
わっているので、最新安定版を使うように、後でgemを作り直しま
すね。(来週月曜の夜のやつが終わったら時間がとれる。。。はず)

作ったら報告するので、とりあえず、それを試してみて下さい。

-- 
須藤 功平 <kou@clear-code.com>
株式会社クリアコード (http://www.clear-code.com/)

In This Thread