Since porting is a case of translating the code from one platform to another platform. In most cases you can recompile the code from C and C++ on to the 2X using an arm compiler.
The problem is that not all libraries will be supported on the 2X, so you need to find out if there are libraries that do similar things, for example there is an OpenGL library for the 2X. There may also be other inconsistencies, Visual C++ has automatic garbage collection, so you would need to write extra code to delete unused pointers etc. if you ported across from .NET to ANSI
As Vynx mentioned you need to understand the code that you are porting, so that if necessary you can rewrite sections. Optimisation will also be a problem, you need to consider work-arounds to get the code running on a small platform (200MHZ 64MB ram, limited screen resolution / colour palette) These typically include - for speed - rewriting sections in Assembler (a chip specific instruction set, directly manipulates the hardware) and finding the 'best' compiler for efficient machine code - for screen - working out how to display things best (unless the app supports 320x240) - for controls - using some bits of code for a mouse pointer / virtual keyboard.
hope this helps...