テーマ:私のPC生活(7434)
カテゴリ:PC・機械モノ
いつものような記事だと思って読み始めた方、ごめんなさい、の第2弾です。
同じように"Qt"が何か分かる人以外は読みとばしてくださいませ...。 *・゜゚・*:.。..。.:*・゜(*´▽`*)゚・*:.。. .。.:*・゜゚・ 実はもうひとつハマっていたことがあって、こちらもググっても解決方法は出てきませんでした。 同じようにハマっている人は何人かいたみたいですが...。 前回ビルドした「Qt/MFC Migration Framework 」を使って、Win32APIとQtを混在させて記述する方法がここにあります。 "QWinWidget"と言うクラスでブリッジさせるのですが、このまま同じように書いてもリンクが通りません。 (1) VisualStudioでプロジェクトを作る (2) 上記URLを参考に、コードを追加 (3) ライブラリとかパスとかを追加 (4) ビルド 本当はこれでウィンドウにいくつかウィジェット(コントロール)が表示されたウィンドウが出てくるはず何ですが、リンクエラーが出ます。 error LNK2001: 外部シンボル ""public: static struct QMetaObject const QWinWidget::staticMetaObject"..... _, ._ (;゚ Д゚) …?! 全くもって意味不明です。 "staticMetaObjectが無い"ってのは分かるんですが、何で無いの? 何のキーワードで検索したのか忘れましたが、いろいろググっていたら、Googleのブック検索で、オライリーの「入門Qt4プログラミング」と言う本がヒットしました。 全部じゃ無いけど中が見えるのは便利ですね。 その中の22ページにちょっとしたヒントがありました。 "Q_OBJECTマクロ"、"moc"、何かこの辺の影響で同じようなリンクエラーが出る、と。 そのときはqmakeしなおしてmakeファイルを再生成してね、と。 _, ._ (;゚ Д゚) …?! VisualStudioのプロジェクトなんでmakeファイルは無いんすよね。 要はmocファイル内部に出来るはずの関数が足りなくてリンクエラー? ん? mocファイルがいるってことかい? そこで前回のブログでも使用した"moc_qwinwidget.cpp"をプロジェクトに追加してビルドしてみました。 キタ━━━━━━(゚∀゚)━━━━━━!!!!! ビンゴです。 プロジェクトの設定でプリコンパイルをoffにするのとmocファイル内のヘッダのパスを変更する必要がありましたが、あっさりうまくいったときは涙モンでした。 しかしQt的にはWin32APIとの混在はサポート外らしいですね。 つまり、Qtってのは全部QtのAPIで記述しないといけない、と。 まあクロスプラットフォームな開発ツールなんで当たり前と言えば当たり前なんですけどね。 お気に入りの記事を「いいね!」で応援しよう
[PC・機械モノ] カテゴリの最新記事
|