QtとMFC
MFCからQtヘ移植する際、戸惑うのは。。。
CObjectとQObject
これらは、見た目は同じようだが内容は、まったくことなる。 CObjectはオブジェクトの型チェックやシリアライズを提供するもの。 QObjectは、誤解を恐れずに書くとOSのプロセス管理とおなじような機能がある。
したがって、移植する際は注意するべき。
なお、最近はまったのはQThreadとCWinThread、両者はともイベント(メッセージ)キューをもち、イベント(メッセージ)ループがあるが、Notifyの方法がことなる。 前者はsignal and slotを使い、後者はMessageを使う。
その際、connectのsignal and slot関数の引数部はQtのプリミティブな型しか受け付けないので注意すること、たとえば移植移行期にはWPARAMやLPARAMなどを使って試すと思われるが、slotを呼んでくれない。 しかも、コンパイルエラーや実行時にエラーメッセージなどは表示されない。 ただ、呼ばないのである。 (補足:これは出来るだけアプリケーションが強制終了しないようにと考慮されているため)
コメント
コメントを投稿