はじめてのwx.NET
Gtk#のビルドが上手く行かないので、wx.NETに手を出して見ました。と、いってもこれはwxWidgets(旧wxWindows)のラッパーで、同じくPython用のラッパーであるwxPythonを使ったことがあるので、まるっきりの初めてという訳ではないのですが。まだ、バージョンが0.4なこともあって、イベントにdelegate/eventが使われていなかったり、まだまだC#っぽくはなっていないけど、wxWidgets自体が安定していそうなので、ちょっと期待です。
あと、wx.NET自体の話ではないのですが.NETとMonoでアパートメントの扱いに違いがありそうで気になりました。以下、wx.NETを使ったテストの結果。
- mcsでコンパイル、STAThreadなし
- .NET上で実行:メッセージボックスに「Cannot initialize OLE」
- MONO上で実行:正常
- mcsでコンパイル、STAThreadあり
- .NET上で実行:実行後、即終了(エラーもなにもない)
- MONO上で実行:正常
- cscでコンパイル、STAThreadあり
- .NET上で実行:正常
- MONO上で実行:正常
- cscでコンパイル、STAThreadなし
- .NET上で実行:メッセージボックスに「Cannot initialize OLE」、ウィンドウは表示される
- MONO上で実行:正常
COMのアパートについて詳しい人なら原因が分かるのかも知れませんが、私はさっぱりなので現象について説明出来ないです・・・(^^;