Informace o typu Run-time knihovny pro Pocket PC 2003 SDK je k dispozici

Překlady článku Překlady článku
ID článku: 830482 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Poskytnout vývojářům úplné Microsoft eMbedded Visual C++ výjimkou zpracování a dynamické cast podporu na zařízení v systému Microsoft Windows používá technologii Pocket PC 2003, Microsoft distribuuje knihovna Run-time typu informace (RTTI) pro Pocket PC 2003 SDK.

Následující soubor je k dispozici ke stažení z centra pro stahování Microsoft Download Center:

Zmenšit tento obrázekZvětšit tento obrázek
Stáhnout
Stáhněte balíček RITTI.exe

Další informace o tom, jak stahovat soubory podpory společnosti Microsoft klepněte na následující číslo článku databáze Microsoft Knowledge Base:
119591 Jak získat soubory podpory společnosti Microsoft ze serverů služeb Online
Byl zkontrolován na tento soubor neobsahuje viry. Společnost Microsoft použila aktuální antivirový software, který byl k dispozici na datum, kdy byla zaúčtována v souboru. Soubor je uložen na zabezpečených serverech, které pomáhají zabránit neoprávněné změny v souboru.

Stahování RTTI.exe obsahuje soubory knihovna (LIB) a vytvoří program databázových souborů (PDB) pro "armv4" a "emulátor".

Použití knihovny RTTI v projektu aplikace Pocket PC 2003, postupujte takto:
  1. Zkopírujte soubory Ccrtrtti.lib a Ccrtrtti.pdb ze složky ArmV4 a emulátor ve stahování do složky s názvem ArmV4 a emulátor uvnitř složky \Lib SDK Pocket PC 2003.

    Poznámka: Podle výchozího nastavení se tyto adresáře nacházejí v C:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Lib\ArmV4OrEmulator složka pro stolní počítače, které mají nainstalován Pocket PC 2003 SDK.
  2. Pro všechny konfigurace projektu, které hodláte cílové, včetně Ccrtrtti.lib v nastavení projektu eMbedded Visual C++ 4.0 postupujte takto:
    1. V eMbedded Visual C++ 4.0, klepněte Odkaz karty v Nastavení projektu Dialogové okno.
    2. Typ Ccrtrtti.lib v Knihovna objektů/moduly pole.
    3. Klepněte na tlačítko OK.
  3. Postupujte takto:
    1. V Nastavení projektu Dialogové okno, klepněte C/C++ na kartě.
    2. Přidat /GX přepínače v Možnosti projektu seznam. Je třeba tento přepínač kompilovat kód projektu zpracování výjimek.

      Poznámka: Pokud projekt používá dynamické cast, přidejte /GR přepnete.

Další informace

Zpracování výjimek C++ kódu, který používá, "throw" konstrukcí "úlovky" konstrukce nebo oba typy dat vyžaduje podporu RTTI identifikovat typ výjimky. Bez knihovny RTTI zadané výjimky C++ zpracování kódu příčiny linker chybovou zprávu, která je podobná následující chybová zpráva:

Chyba LNK2001: nevyřešené externí symbol "const type_info:: 'vftable'" (??_7type_info@@6b @)
Následující kód příčiny bez knihovny RTTI předchozí chyba linker:
try

{
// The code here can raise exceptions.
}
catch(int i)
{
// Optional exception handling logic goes here.
}
Vytvořeném propojovacím vrátí chybu, protože nemůže najít požadované pro identifikaci typu výjimky typu knihovny RTTI int.

Stejné logiky se vztahuje na "throw" konstrukce, které zahrnují všechna data. Například příkaz
throw 1;
vyžaduje RTTI určit odpovídající "úlovky" bloku by zpracování výjimek s int hodnoty.

Bez knihovny RTTI manipulace s jedinou výjimkou konstrukce, stavební práce je druh, který zahrnuje žádné datové typy. Například následující kód odkazy bez knihovny RTTI, aniž by došlo k chybě:
try

{
// The code here can raise exceptions.
}
catch(...)
{
// Generic exception handling logic goes here.
}
Soubory knihovny RTTI, všechny C++ výjimka zpracování konstrukce (psaný a kontrakty), které jsou v této části tohoto článku má generovat spustitelné soubory správné. Není nutné mít další knihovny DLL, protože logika RTTI již knihovny DLL, které jsou v zařízení Pocket PC 2003 a emulátor.

Následuje známé potíže s eMbedded Visual C++ 4.0 Service Pack 2 (SP2) při použití této knihovny RTTI. Krokování jednoho kódu přes pravá složená závorka po poslední logický příkazu v try/catch. blok aplikace způsobí následující události:
  • Do spustitelného souboru aplikace na emulátor zařízení Pocket PC 2003 dojde k chybě.
  • Aplikace přestane reagovat (zablokuje se) v zařízení Pocket PC 2003.
V bodě o chybě nebo aplikace přestane reagovat (na konci try/catch. blok), eMbedded Visual C++ IDE ohlásí chybu narušení přístupu, zobrazí se následující chybová zpráva:

První možnost výjimky
Společnost Microsoft si je vědoma tohoto problému a je funkční směrem k řešení tohoto problému v budoucí verzi.

Řešení tohoto problému je nastavit zarážky v prvním příkazu po skončení try/catch. blok a poté nechat aplikaci spustit až do konce try/catch. blokovat a pokračovat v ladění na bod přerušení. Nemají jediný krokovat kód po bylo dosaženo logické posledního příkazu v try/catch. blok.

Soubory knihoven RTTI také podporují dynamické nádech. Například bez knihovny RTTI eMbedded Visual C++ 4.0 ohlásí chybu linker s následujícím kódem:
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);
}
Chyba linker vypadá podobně jako následující:

Chyba LNK2001: nevyřešené externí symbol "const type_info:: 'vftable'" (??_7type_info@@6b @)
Chyba LNK2019: nevyřešené externí symbol ___RTDynamicCast odkazuje funkce "void __cdecl Test(void)" (?)Test@@YAXXZ)
Kód dynamické cast úspěšně vytvoří při zahrnutí knihoven RTTI v projektu.

Vlastnosti

ID článku: 830482 - Poslední aktualizace: 22. května 2011 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Windows Mobile 2003 software for Pocket PC Standard Edition
  • Microsoft eMbedded Visual C++ 4.0
Klíčová slova: 
kbinfo kbmt KB830482 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:830482

Dejte nám zpětnou vazbu

 

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