1082297 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

GDAといっしょ(・∀・) GDBとは違うのだよ、GDBとは!

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
May 28, 2009
XML
テーマ:私のPC生活(7386)
カテゴリ: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で記述しないといけない、と。

まあクロスプラットフォームな開発ツールなんで当たり前と言えば当たり前なんですけどね。





お気に入りの記事を「いいね!」で応援しよう

Last updated  May 28, 2009 04:49:21 PM
コメント(2) | コメントを書く


PR

Profile

a☆1965

a☆1965

Category

Calendar

Rakuten Card

Keyword Search

▼キーワード検索


© Rakuten Group, Inc.