Frage

Ihr Cross-Plattform-Entwicklung mit 64bit. Mit gcc / linux und msvc9 / Server 2008. Gerade im Einsatz vor kurzem eines Kunden an Fenstern und bei einigen Tests von Upgrades fand ich heraus, dass, obwohl std :: streamoff ist 8 Byte, das Programm stürzt ab, wenn Vergangenheit 4G suchen.

Ich wechselte sofort STLport die das Problem behebt, scheint jedoch STLport andere Probleme zu haben. Ist STL mit msvc9 dass gebrochene wirklich, oder bin ich etwas fehlt?

Da der Code Cross-Plattform ist, ich habe null Interesse alle win32 Anrufe zu verwenden.

Related

War es hilfreich?

Lösung 3

I endete mit STLport auf. Der größte Unterschied mit STLport sein, dass einige Unit-Tests, die während vervielfachen doppelter Genauigkeit Zahlen abgestürzt jetzt arbeiten und diese Einheit Tests bestehen. Es gibt einige andere Unterschiede relativ genau Aufspringen aber die scheinen gering zu sein.

Andere Tipps

Auch wenn Sie sagen, dass Sie „Null“ Interesse an der Verwendung von „win32“ Anrufen, es Situationen wie diese Ihre stecken zwischen einem Felsen und einem harten Platz haben.

Ich möchte nur meine eigene Version einer Datei iostream mit den „win32“ Anrufe implementieren, und fühlt sich an wie die fstream Schnittstellen aussieht. Dies ist einfach zu tun, und ich habe es hunderte Male getan.

Nennen Sie es sagen 'fstreamwin32'.

Dann würde ich eine Header-Datei, die wie etwas tun würde:

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

Dann würde ich fsteamnative überall benutzen. Auf diese Weise halten Sie Ihre Code Cross-Plattform und noch Ihr Problem lösen.

Wenn das Problem überhaupt festgelegt ist, können Sie einfach Ihre „win32“ Abhilfe Entfernen Sie von Ihrem typedef zurück zur Verwendung von fstream typedef ändern. Aus diesem Grund viele Cross-Plattform-Codebases viele Dereferenzierungsebenen haben (zum Beispiel durch ihre eigenen typedef 's für Standard-Sachen verwendet wird), so dass sie Dinge sind zu tun, wie dies mit würde eine Menge Code zu ändern.

Eine andere Verbindung, die ich zu diesem Thema gefunden:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top