テーマ:私のPC生活(7398)
カテゴリ: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・機械モノ] カテゴリの最新記事
はじめまして、purimo様
migrationの件で日本で調査すると、こちらのHPのみがヒットしました^^; 初対面で大変失礼なのですが、もしよろしければ、以下の質問に相手してやって下さい。 mocの件は、ひょっとしてプリプロセッサの定義に QT_QTWINMIGRATE_IMPORT を追加定義すれば、不要なのでしょうか? 実は、わたしのとこでは、リンク時に error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: virtual __thiscall QWinWidget::~QWinWidget(void)"が出力され困ってます^^; migrationのlibフォルダにあるlibQtSolutions_MFCMigrationFramework-2.8.aを追加の依存ファイルに登録するだけと思っているのですが。。。 違うのでしょうか? (Oct 11, 2010 09:26:05 PM)
最初に謝っておきます、前回までの24さん、お役に立てずすみません。私、Qtに関しては完全にシロウトです。あれっきりQtにも関わってないもんで...。
私も困ったときはそうやっていろんな方に助けられているので助けてあげたいのはヤマヤマなんですが...。 ホント、ごめんなさい!! (Oct 12, 2010 10:18:43 PM) |