2009-07-18 6 views
1

J'ai une bibliothèque dynamique qui fonctionne bien, et j'aimerais utiliser un objet QObject. Après avoir inclus l'en-tête "qobject.h", je compile adn evrything va bien. Mais quand j'essaye de déclarer un QObject, le compilateur me donne toujours une erreur "identifiant non trouvé". J'ai essayé la déclaration de la classe QObject, ça n'a pas aidé. C'est bizarre parce que intellisense de Visual Studio fonctionne quand j'utilise Qt dans ma DLL (ex .: quand je déclare un QObject, visual sdio me montre les fonctions disponibles pour mon QObject). Y at-il quelque chose de spécial que je dois faire pour utiliser Qt dans une bibliothèque dynamique? Dois-je le compiler avec qmake maintenant que j'utilise un QObject?Liaison de Qt dans une bibliothèque dynamique

merci pour l'aide

Dave

EDIT: les problèmes ne semble se produire après avoir inclus stdafx.h. Si j'essaie d'inclure les en-têtes Qt après Stdafx.h, ma bibliothèque ne compile pas, ce qui me donne des erreurs de syntaxe. Si j'utilise une référence Qt avant d'inclure Stdafx.h, elle compile et s'exécute bien, mais c'est inutile, car je ne peux pas utiliser les références Qt dans mon code existant.

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 

la ligne en question est QWidget :: find (hwnd); et j'inclus QWidget

Répondre

0

Avez-vous installé le integration entre VS et Qt? Je crois que vous en avez besoin (au lieu d'utiliser qmake) pour les applications et les bibliothèques. En ce qui concerne le problème stdafx, j'imagine que vous devez probablement exécuter des macros conflictuelles entre cet en-tête et le qobject (mais si je vous lis bien, vous pouvez contourner le problème en les incluant dans cet ordre, qobject first et stdafx next - c'est correct?). [[Apparemment non, selon le dernier commentaire de l'OP]].

Modifier: quelques instructions sur la réalisation des travaux d'intégration VS/Qt sont here, si vous utilisez la version LGPL de Qt 4.5 - sinon, je crois que le produit d'intégration est une offre commerciale. (Si vous n'avez pas désespérément besoin de certains aspects spécifiques de Visual Studio, vous pouvez alternativement simplifier votre vie en utilisant Qt Creator à la place, mais je me rends compte que VS et son compilateur C++ sous-jacent peuvent être préférables à d'autres égards).

+0

bien je peux le contourner, en les incluant dans le bon ordre, mais ensuite je ne peux pas utiliser un QObject, donc ça ne résout pas vraiment mon problème. Je vais essayer d'installer l'intégration. Y a-t-il des mesures particulières que je dois prendre, ou cela devrait-il être bon après cela? –

+0

Je pensais que "compiler et fonctionne bien" signifiait juste cela - peut-être que vous voulez modifier votre question à nouveau pour clarifier ce n'est pas le cas. J'édite ma réponse pour ajouter un pointeur aux instructions pour l'intégration. –

+0

J'ai essayé d'installer l'intégration avec les instructions ci-dessus, je reçois toujours les mêmes erreurs –

Questions connexes