Question

Faire le développement de la plate-forme de croix avec 64bit. En utilisant gcc / linux et msvc9 / serveur 2008. Tout récemment déployé un client sur les fenêtres et lors des tests de mises à jour, j'ai découvert que bien que std :: streamoff est de 8 octets, le programme se bloque lors de la recherche passé 4G.

Je me suis immédiatement passé à STLport qui résout le problème, mais stlport semble avoir d'autres problèmes. Est STL avec msvc9 vraiment cassé, ou suis-je manque quelque chose?

Puisque le code est multiplateforme je aucun intérêt à l'aide d'appels win32.

Related

Était-ce utile?

La solution 3

Je fini par utiliser STLport. La plus grande différence avec STLport étant que certains tests unitaires qui se sont écrasés au cours des multiplications nombres double précision travaillent maintenant et les tests unitaires passent. Il y a quelques autres différences avec précision relative surgissant mais ceux qui semblent être mineures.

Autres conseils

Même si vous dites que vous avez intérêt « zéro » à l'aide de « win32 » appels, il situations comme celle-ci votre coincé entre le marteau et l'enclume.

Je voudrais juste mettre en œuvre ma propre version d'un iostream de fichier en utilisant les appels « win32 » qui se présente comme les interfaces fstream. Cela est facile à faire et je l'ai fait des centaines de fois.

Appelez-dire 'fstreamwin32'.

Alors j'aurais un fichier d'en-tête qui ferait quelque chose comme:

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

Alors j'utiliser fsteamnative partout. De cette façon, vous gardez votre plate-forme de croix de code et résoudre votre problème encore.

Si le problème est toujours résolu, vous pouvez facilement supprimer votre solution de contournement « win32 » en changeant votre typedef retour à l'utilisation typedef fstream. Voilà pourquoi beaucoup de codebases multiplateformes ont beaucoup de niveaux d'indirection (par exemple en utilisant leurs propres années typedef pour des trucs standard) afin qu'ils soient faire des choses comme cela devoir changer beaucoup de code.

Un autre lien que je trouve sur ce sujet:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top