Pregunta

Si lo hace el desarrollo de plataforma cruzada con 64 bits. Utilizando gcc / Linux y msvc9 / Server 2008. Recientemente desplegado un cliente en las ventanas y durante algunas pruebas de actualizaciones descubrí que aunque std :: streamoff es de 8 bytes, el programa se bloquea cuando se busca pasado 4G.

De inmediato cambió a STLport que fija el problema, sin embargo STLport parece tener otros problemas. Es STL con msvc9 realmente tan roto, o me estoy perdiendo algo?

Dado que el código es multiplataforma tengo ningún interés en el uso de cualquier llamada Win32.

Relacionados

¿Fue útil?

Solución 3

Terminé usando STLport. La mayor diferencia con STLport ser que algunas pruebas de unidad que se estrelló durante multiplica los números de precisión doble ahora trabajan y pasan las pruebas unitarias. Hay algunas otras diferencias con relativa precisión apareciendo pero los que parecen ser de menor importancia.

Otros consejos

A pesar de que dice que tiene "cero" interés en el uso de las llamadas "win32", TI situaciones como esta su pegada entre la espada y la pared.

Me acaba de poner en práctica mi propia versión de un archivo iostream utilizando las llamadas "win32" que tiene la apariencia de las interfaces fstream. Esto es fácil de hacer y lo he hecho cientos de veces.

Llamada dice 'fstreamwin32'.

A continuación, me gustaría tener un archivo de cabecera que hacer algo como:

#ifdef WIN32
typedef fstreamwin32 fsteamnative;
#else
typedef fstream fsteamnative;
#endif

A continuación, me gustaría utilizar fsteamnative todas partes. De esa manera usted mantener su código de plataforma cruzada y todavía resolver su problema.

Si el problema es cada vez fijado, puede quitar fácilmente su solución "win32" cambiando typedef de nuevo a usar typedef fstream. Esta es la razón por un montón de bases de código de plataforma cruzada tienen un montón de niveles de direccionamiento indirecto (por ejemplo, mediante el uso de sus propios typedef para material estándar) para que estén hacer cosas como esta podría tener que cambiar mucho código.

Otro enlace que he encontrado sobre este tema:

http://cplusplus.com/forum/general/6813/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top