De acuerdo con esta MSDN page:¿Cómo puedo habilitar mi aplicación Delphi de 32 bits para usar 4 gb de memoria en ventanas de 64 bits (a través de Wow64.exe)?
WOW64 permite a las aplicaciones de 32 bits a tomar ventaja de los kernel de 64 bits. Por lo tanto, las aplicaciones de 32 bits pueden usar una mayor cantidad de controladores de kernel y . Sin embargo, 32 bits aplicaciones pueden no ser capaz de crear como muchos hilos bajo WOW64 ya que puede cuando se ejecuta de forma nativa en sistemas basados en x86 porque WOW64 asigna una adicional pila de 64 bits (generalmente 512 KB) para cada hilo. Además, algunos cantidad de espacio de direcciones están reservados para WOW64 y las estructuras de datos que utiliza. La cantidad reservada depende del procesador; más está reservado en el Intel Itanium que en el procesador x64.
Si la aplicación tiene la IMAGE_FILE_LARGE_ADDRESS_AWARE bandera conjunto en el encabezado de la imagen, cada uno de 32 bits aplicación recibe 4 GB de espacio virtual dirección en el entorno WOW64 . Si el indicador IMAGE_FILE_LARGE_ADDRESS_AWARE no está establecido, cada aplicación de 32 bits recibe 2 GB de espacio de direcciones virtuales en el entorno WOW64.
¿Cómo se configura de manera efectiva la bandera IMAGE_FILE_LARGE_ADDRESS_AWARE en mi aplicación Delphi 2007 para que yo pueda hacer mi aplicación de 32 bits WoW64 conscientes y direccionar hasta un total de 4GB de memoria?
¿Hay alguna posibilidad de que estos problemas en RTL/VCL se corrijan, si existen? :) – Alex
¿Por qué los punteros deben interpretarse como enteros de 32 bits con signo? Eso me suena a un diseño defectuoso que Embarcadero debería solucionar, sobre todo porque parece que no tienes prisa por lanzar una versión de Delphi de 64 bits. –
@Jan Goyvaerts - para detectar desbordamiento de manera simple, fácil y eficiente, como describí. Y las decisiones de marketing y producto alrededor de 64 bits, etc. son completamente irrelevantes para la advertencia técnica específica que estoy emitiendo aquí. –