Pocket PC 2003 RTTI Patch | |||
|
Microsoft has now released a library for RTTI support for Pocket PC 2003. Their library works for both Pocket PC 2003 devices and the Pocket PC 2003 emulator. Note that the Microsoft solution will make your application larger. You may still choose the Entrek solution (below) which merely leverages the native support included in the Pocket PC 2003 OS (device only, not emulator) by forwarding calls your application makes directly to the OS implementation. There is no implementation in the Entrek solution, so your application size does not change. Here is a link to the Microsoft library: http://support.microsoft.com/default.aspx?scid=kb;[LN];830482. Information Regarding the Entrek Solution Microsoft introduced C++ exception handling and runtime type information (RTTI) to Windows CE 4.0. Pocket PC 2003, based on Windows CE 4.2, was configured to include both C++ exception handling as well as RTTI. However, there was an error in generating the Pocket PC 2003 SDK such that an application which uses RTTI fails to build. When building a Pocket PC 2003 application which uses RTTI, it will compile without error. However, an "unresolved external" error occurs at link time. Solution Entrek Software, Inc. is happy to provide a solution to this problem. Our solution requires linking to RTTIPatch.lib and installing RTTIPatch.dll to the \Windows directory of the target device. There is no requirement to include any headers. Our solution is simple. The library simply resolves the unresolved symbols. The DLL provides entrypoints for those functions that are merely forwarders to the actual implementation provided in coredll.dll. That is, there is no implementation of RTTI in our solution. It leverages the existing implementation provided by the operating system. The "source" code is simply a module definition file (which may be viewed below and you may include directly in your project). Please note that the /GX switch is needed on the compiler command line to enable C++ SEH. There is no option in the Microsoft eVC 4.0 Project Settings/C++ tab that will add this switch. You must manually modify the command line to add /GX. Please note that this solution is only for ARM/XScale-based Pocket PC 2003 devices. It will not work on the Pocket PC 2003 emulator as this configuration of Pocket PC 2003 lacks RTTI support. The x86 module definition file is only provided as a reference. It can be used for other Windows CE x86 configurations that have the same problem. License By downloading these files, you agree to the
following terms. You may use the provided binaries, or you may use RTTIPatch.def in your own project DLL. By including in your own project DLL, you remove the dependency on RTTIPatch.dll and, most importantly, the 64KB of virtual address space the operating system would typically reserve for it. Disclaimer
These files are provided "as is". Entrek Software, Inc.
provides no warranty nor assumes any liability for their usage. View X86RTTIPatch.def (for x86 targets only) View RTTIPatch.def (all other CPUs)
| |||
|
Copyright © Entrek Software, Inc. |