Win32でRPCが失敗する
現在お仕事でPerlを使ったカンタンな集計ツールを作っています。
集計結果をExcelで出力することになっているのでWin32::OLEを使って書いています。
が、ここで問題が1つ。
モジュールの単体テストをPerlUnitを導入して書いているのですが、
テストを実行するたびに成功したり成功しなかったりとなんだがヘンなことになっています。
失敗する時のログを見ているとあることに気がつきました。
Win32::OLE(0.1701) error 0x800706be: "リモート プロシージャコールに失敗しました。"
とか言ってる。
ちなみに落ちている行に書いてることは
my $book = $$excel_ref->Workbooks->Open($read_file_name) || die;
とか
my $sheet = $book->Worksheets($sheet_name) || die;
ちゃんと処理が終わったら$book->Close();しているんだけどなぁ・・・
う〜んこれって単純にテストの書き方が悪いのかなぁ・・・
ネットで調べても調べ方が悪いのかヒットしないしなぁ・・・。
Win32::OLEの使い方は書いてあるけど、特有のクセとかエラー処理については書いてないのが殆ど。