La bibliothèque Run-time Type Information pour le Pocket PC 2003 SDK est disponible

Traductions disponibles Traductions disponibles
Numéro d'article: 830482 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Pour fournir aux développeurs avec complète de Microsoft eMbedded Visual C++ exception gestion et les conversion dynamique prennent en charge sur les périphériques Microsoft Windows compatibles Pocket PC 2003, Microsoft est distribution de la bibliothèque Run-time Type Information (RTTI) pour le SDK Pocket PC 2003.

Le fichier suivant est téléchargeable à partir du Centre de téléchargement Microsoft :

Réduire cette imageAgrandir cette image
Download
Download the RITTI.exe package now.

Pour plus d'informations sur la façon de télécharger des fichiers de support technique Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
119591 Comment obtenir des fichiers de support technique Microsoft auprès des services en ligne
Microsoft a analysé ce fichier de virus. Microsoft utilisé les logiciels de détection de virus plus récente ne sont associé à la date à laquelle le fichier a été validé. Le fichier est stocké sur des serveurs sécurisés, pour empêcher toute modification non autorisée dans le fichier.

Le téléchargement RTTI.exe inclut les fichiers de bibliothèque (.lib) et crée des fichiers programme de base de données (.pdb) pour la « ArmV4 » et les « émulateur ».

Pour utiliser la bibliothèque RTTI dans un projet Pocket PC 2003, procédez comme suit :
  1. Copiez les fichiers Ccrtrtti.lib et Ccrtrtti.pdb dans les dossiers ArmV4 et émulateur dans le téléchargement vers les dossiers sont nommés ArmV4 et émulateur dans le dossier \Lib de Pocket PC 2003 SDK.

    note Par défaut, ces répertoires sont trouvent dans le dossier C:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Lib\ ArmV4OrEmulator sur ordinateurs de bureautiques qui ont le kit Pocket PC 2003 SDK installé.
  2. Pour toutes les configurations de projet que vous souhaitez cibler, inclure Ccrtrtti.lib dans Paramètres du projet D'embedded Visual 4.0 de C++, procédez comme suit :
    1. Dans eMbedded 4.0 Visual C++, cliquez sur l'onglet lien dans la boîte de dialogue Paramètres du projet .
    2. Tapez Ccrtrtti.lib dans la zone objet/bibliothèque de modules .
    3. Cliquez sur OK .
  3. Procédez comme suit :
    1. Dans la boîte de dialogue Paramètres du projet , cliquez sur l'onglet c/c++ .
    2. Ajoutez le commutateur /GX dans la liste Options de projet . Vous devez ce commutateur pour compiler le code du projet de gestion des exceptions.

      note Si le projet utilise conversion dynamique, ajoutez le commutateur /GR .

Plus d'informations

Constructions de code de gestion des exceptions C++ qui utilise lève constructions, « intercepter », ou les deux des types de données nécessite RTTI prise en charge pour identifier le type d'exception. Sans la bibliothèque RTTI, code de gestion des exceptions C++ tapé force un éditeur de liens message d'erreur est similaire à la message d'erreur suivantes :

Erreur LNK2001 : symbole externe non résolu " const type_info:: ` vftable' »??_7type_info@@6B @)
Par exemple, sans la bibliothèque RTTI, le code suivant provoque l'erreur liens précédente : essayez
try

{
// The code here can raise exceptions.
}
catch(int i)
{
// Optional exception handling logic goes here.
}
l'éditeur de liens renvoie l'erreur, car il ne trouve pas la bibliothèque RTTI est requis pour type-identification des exceptions de type int .

La même logique s'applique à générer des structures qui impliquent des données. Par exemple, l'instruction
throw 1;
nécessite RTTI déterminer le correspondant « catch bloc qui serait gérer les exceptions avec des valeurs int .

Sans la bibliothèque RTTI, la gestion des exceptions uniquement construire que fonctionne est le type qui n'implique aucun type de données. Par exemple, le code suivant des liens sans la bibliothèque RTTI sans provoquer un message d'erreur : essayez
try

{
// The code here can raise exceptions.
}
catch(...)
{
// Generic exception handling logic goes here.
}
avec les fichiers de bibliothèque RTTI, tout le C++ exception traitement construit (typés et non) qui sont dans cette section de cet article doit générer exécutables correct. Vous devez avoir dll supplémentaire car la logique RTTI est déjà dans les DLL qui sont sur le périphérique Pocket PC 2003 et l'émulateur.

Voici un problème connu avec eMbedded Visual C++ 4.0 Service Pack 2 (SP2) lorsque vous utilisez cette bibliothèque RTTI. Seule exécution pas à pas dans le code sur l'accolade fermante après que la dernière instruction logique dans la try/catch bloquer dans une application provoquerait les événements suivants :
  • Un incident se produit dans le fichier exécutable de l'application sur l'émulateur Pocket PC 2003.
  • L'application cesse de répondre (se bloquer) sur le périphérique Pocket PC 2003.
Au moment de l'incident ou lorsque l'application cesse de répondre (à l'extrémité du bloc try/catch ), eMbedded Visual C++ IDE signale une violation d'accès avec le message d'erreur suivantes :

Première chance exception
Microsoft est conscient de ce problème et travaille pour résoudre ce problème dans une version ultérieure.

La solution à ce problème consiste à définir un point d'arrêt à la première instruction après la fin du bloc try/catch , puis de laisser l'application exécuter jusqu'à la fin du bloc try/catch et continuer le débogage au point d'arrêt. Ne pas unique-étape dans le code après que vous avez atteint la dernière instruction logique dans le bloc try/catch .

Les fichiers de bibliothèque RTTI fournissent également prise en charge pour les casts dynamiques. Par exemple, sans la bibliothèque RTTI, eMbedded 4.0 C++ Visual indiquera une erreur de liens avec le code suivant : structure
struct A 

{ 
   int a; 
   A() : a(1) {} 
   virtual ~A() {} // All the rest of destructors will be virtual. 
};

void Test()

{
   A a; 
   A* a4 = dynamic_cast<A>(&a);
}
l'erreur liens ressemble à la suivante :

Erreur LNK2001 : symbole externe non résolu " const type_info:: ` vftable' »??_7type_info@@6B @)
erreur LNK2019 : non résolus ___RTDynamicCast symbole externe référencée dans la fonction « void __cdecl Test(void) » (? Test@@YAXXZ)
Le code conversion dynamique génère correctement avec l'inclusion des bibliothèques RTTI dans le projet.

Propriétés

Numéro d'article: 830482 - Dernière mise à jour: mardi 2 novembre 2004 - Version: 1.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Mobile 2003 software for Pocket PC Standard Edition
  • Microsoft eMbedded Visual C++ 4.0
Mots-clés : 
kbmt kbinfo KB830482 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 830482
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com