Teď jste offline a čekáte, až se znova připojí internet.

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

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
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
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:

StáhnoutStá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.
eVC eVC CPPEH type_info ++

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 830482 - Poslední kontrola: 12/08/2015 05:06:20 - Revize: 3.0

Microsoft Windows Mobile 2003 software for Pocket PC Standard Edition, Microsoft eMbedded Visual C++ 4.0

  • kbnosurvey kbarchive kbinfo kbmt KB830482 KbMtcs
Váš názor