Génération et débogage des projets smart device Visual C++
Mise à jour : novembre 2007
La génération et le débogage de projets Smart Device diffèrent légèrement de ceux des projets bureautiques.
Voici une liste des techniques de génération et de débogage :
Par défaut, le modèle de thread pour le projet Smart Device est Libre. Toutefois, Windows CE ne prendra pas intégralement en charge le marshaling COM et les définitions associées si l'option DCOM n'est pas activée lorsque vous générez votre image du système d'exploitation CE. Par conséquent, sur certaines plateformes CE, le compilateur peut générer des avertissements quant à la prise en charge DCOM, et à des définitions monothread et multithread. Cet avertissement a pour but de vous conseiller de gérer les threads et la synchronisation dans votre propre code. Par exemple, lorsque vous compilez un projet Smart Device ATL, le compilateur peut émettre un avertissement relatif à la définition de _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA. C'est également le cas pour les scénarios tels que la création d'objets COM et l'utilisation de services Web, ainsi que pour les objets ATL COM exécutés sur la plateforme Windows Mobile. Vous pouvez définir cet indicateur dans votre fichier d'en-tête principal pour les objets monothreads, comme suit : #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA. Si votre code gère le multithreading, vous pouvez ignorer cet avertissement sans risque. Pour plus d'informations sur les protocoles COM, DCOM et les modèles de thread sur Windows CE, consultez Threads et processus COM et Services de composants (COM et DCOM), dans la documentation de Windows CE 5.0.
Par défaut, les applications Smart Device natives sont créées à l'aide d'une liaison statique. Vous pouvez ajouter les DLL runtime suivantes à votre propriété de projet Fichiers supplémentaires si vous décidez de basculer vers la liaison dynamique :
Configurations de génération Release des applications MFC
Ajoutez les DLL runtime suivantes à votre propriété de projet Fichiers supplémentaires : msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;MFC80U.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;
Configurations de génération Debug des applications MFC
Ajoutez les DLL runtime suivantes à votre propriété de projet Fichiers supplémentaires : msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;MFC80Ud.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;
Configurations de génération Release des applications ATL
Ajoutez les DLL runtime suivantes à votre propriété de projet Fichiers supplémentaires : msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\<NomProjet>|0;
Configurations de génération Debug des applications ATL
Ajoutez les DLL runtime suivantes à votre propriété de projet Fichiers supplémentaires : msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\%CSIDL_PROGRAM_FILES%\<NomProjet>|0;msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\%CSIDL_PROGRAM_FILES%\<NomProjet>|0;atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\%CSIDL_PROGRAM_FILES%\<NomProjet>|0;
Pour plus d'informations sur le chargement des DLL Windows CE, consultez LoadLibrary pour le chargement de DLL Windows CE.
Remarque : Le chargement simultané de plusieurs DLL du même nom issues de répertoires différents, par exemple \Windows\aDLL.dll et \Program Files\aDLL.dll, peut provoquer des résultats imprévisibles. Il est recommandé de ne charger qu'une seule copie d'une DLL à la fois ou de prévoir l'appel de la première DLL chargée.
Voici quelques considérations supplémentaires :
Lors du portage vers MFC 8.0 #, définissez _WIN32_WCE_PSPC. Par défaut, cet indicateur n'est pas défini dans MFC8.0.
L'option ARM4T n'est pas prise en charge lors du ciblage de Pocket PC 2003 ou de Smartphone 2003 dans la liste déroulante Compilation pour une architecture. Pour rechercher cette liste dans la boîte de dialogue Pages de propriétés <nom de projet>, cliquez sur Propriétés de configuration, sur C/C++ et sur Avancées, puis sélectionnez Compilation pour une architecture.
Les fonctions GAPI sont utilisables en C++, mais non en C. L'intégration de gx.h à votre code fonctionne uniquement à partir de C++. Si vous utilisez GAPI dans votre code, n'effectuez aucune compilation avec l'option du compilateur /TC.
Dans MFC 8.0 for Devices, vous contrôlez la création et l'insertion de CommandBar. Le membre CDialog::m_pWndEmptyCB n'est plus pris en charge. Ce membre a été utilisé pour pointer vers la classe CCommandBar vide (voir CCommandBar, classe), également nommée MenuBar sur le Pocket PC, créée pour la boîte de dialogue ; par ailleurs, vous pouvez le référencer pour insérer votre propre MenuBar.
Checked::_strlwr_s, _strlwr_s_l, _mbslwr_s, _mbslwr_s_l, _wcslwr_s, _wcslwr_s_l, Checked::tcslwr_s et Checked::gcvt_s sont fournis pour les plateformes qui utilisent Windows CE.
L'indicateur _WIN32_WCE_PSPC n'est plus défini ; vous pouvez utiliser l'indicateur _WIN32_WCE_PSPC WIN32_PLATFORM_PSPC comme solution de contournement.
Pour le portage d'applications STL, intégrez <deque> au lieu de #include <deque.h>.
L'IDE prend en charge plusieurs plateformes. Lorsque vous hébergez des objets MFC ou ATL ActiveX dans une ressource de boîte de dialogue d'un projet Smart Device, vous devez créer et enregistrer un contrôle équivalent dans un projet ActiveX de bureau équivalent. Le contrôle peut être ajouté au modèle de boîte de dialogue de l'appareil dans l'éditeur de ressources et fonctionner correctement. Les versions du système bureautique et de l'appareil du contrôle ActiveX doivent disposer du même GUID et des mêmes propriétés au moment du design, telles que la couleur d'arrière-plan.
Voir aussi
Tâches
Comment : configurer un périphérique dans un projet Visual C++
Concepts
Paramètres de débogage et de déploiement pour les projets smart device Visual C++
Paramètres de débogage et de déploiement pour les projets smart device Visual C++
Référence
Autres ressources
Débogage des projets Smart Device