2009-07-18 23 views
1

私はうまく動作するダイナミックライブラリを持っており、その中にQObjectを使用したいと思います。 "qobject.h"ヘッダーをインクルードした後、私はコンパイルします。しかし、私がQObjectを宣言しようとすると、コンパイラは常に私に "識別子が見つかりません"というエラーを返します。私はQObjectクラスの前書きを試みましたが、それは役に立ちませんでした。私のdllでQtを使用するとVisual Studioのインテリセンスが働いているので、変です(例:QObjectを宣言すると、VisualSdioは私のQObjectで使用できる関数を表示します)。ダイナミックライブラリでQtを使うために特別なことはありますか?私はQObjectを使用しているので、qmakeを使ってコンパイルする必要がありますか?助けのためのQtをダイナミックライブラリにリンクする

おかげ

デイブ

EDIT:問題は、私はSTDAFX.Hを含めた後にのみ発生するようです。 Stdafx.hの後にQtヘッダーを含めると、ライブラリがコンパイルに失敗し、構文エラーが発生します。 Stdafx.hをインクルードする前にQtリファレンスを使用するとコンパイルされて正常に動作しますが、既存のコードでQt補間を使用することができないので使い物になりません。

1>c:\users\dave\documents\visual studio 2008\projects\frogger\froggerdll\ftclient.cpp(47) : error C2653: 'QWidget' : is not a class or namespace name 
1>c:\users\dave\documents\visual studio 2008\projects\frogger\froggerdll\ftclient.cpp(47) : error C3861: 'find': identifier not found 

この行はQWidget :: find(hwnd)です。 と私はQWidgetを含めています

答えて

0

VSとQtの間にintegrationをインストールしましたか?私はアプリケーションとライブラリの両方で(qmakeを使う代わりに)必要と思っています。 Stdafxの問題については、おそらくヘッダーとqobjectの間に矛盾するマクロが走っていなければならないと思います(しかし、私があなたのことをよく読んだ場合は、qobject firstとstdafx nextをそれは正しい?)。 [OPの最新のコメントによると、明らかにそうではない]。

編集:あなたはQtの4.5のLGPLのバージョンを使用している場合はVS/Qtの統合作業を行う上でいくつかの命令は、hereある - そう、私は統合製品は、市販の製品であると考えています。 (Visual Studioのいくつかの特定の側面が必然的に必要ない場合は、代わりにQt Creatorを使用して人生を簡略化することができますが、VSとその基礎となるC++コンパイラが他の点では望ましいかもしれません)。

+0

私はそれをバイパスすることができますが、それらを正しい順序で含めることで、QObjectを使用することはできません。したがって、実際には私の問題は解決しません。私は統合をインストールしようとします。私が取る必要がある特定のステップはありますか?それ以降はうまくコンパイルする必要がありますか? –

+0

私は「コンパイルしてうまく動作する」と思ったのですが、それを明確にするためにあなたの質問を再度編集したいかもしれません。私は、統合のための指示へのポインタを追加する答えを編集しています。 –

+0

私は上記の手順で統合をインストールしようとしましたが、私はまだ同じエラーが発生します –

関連する問題