TOPPERSを VC2008 Express Editionで動かすことはできるか

TOPPERSLinux 依存部とWindows依存部を1ファイルずつ調べた結果、依存部ファイルの中に dispath() 関数の実装があった。内容はそれぞれ、

  • Linux ではSIG_USER1シグナルを送出
  • Windows ではSendMessage()関数でHALMSG_DISPATCHメッセージを送出

というコードになっていた。

どちらも実行中のタスクに強制的に割り込むことができる仕組みであり、任意のタイミングでdispathすることができる。

Win32APIに同様の機能がないか調べた。思いついたのはLinuxと同じシグナルを使う方法だが、WindowsのシグナルはIO中はブロックされるらしい。http://d.hatena.ne.jp/odz/20071006/1191691882

個人的にはシミュレータ内でファイル操作やソケット操作をしたかったので、IO中にブロックされるのはちょっと困る。

他に使える仕組みはなさそうなので、MFCのないExpress Edition ではちゃんとした dispatch 関数が作れない=TOPPERSを動かせない という事になる。