0

現在、MSVS 2010 を使用して stlport 5.1.3 から stl にコードを移植しています。問題に直面しており、誰かが助けてくれることを願っています。

コードのどこかに:

HANDLE lHandle = CreateFileW(...);

ifstream lStream( lHandle );

// more job here...

これは、basic_ifstream に void* を取る cTor があるため、stlport でビルドされます。しかし、標準の stl はそうではありません。私は次のように書くべきです:

ifstream lStream( /*FileName*/ );

...しかし、私のファイル名はwchar_t *. ifstream cTor はchar *...のみを受け取ります

回避策を知っていますか?

前もって感謝します、

ドミニク

4

1 に答える 1

0

まあ、MSVC2010 に含まれる stl は私が必要とするすべてのものを提供しているようですが、ドキュメントにはありませんでした。

以前の std::fstream ではワイド char ファイル名を処理できなかったため、CreateFile を使用していました。現在、そのための cTor と open() メンバーがあります。

また、ifstream の新しいフレーバーにより、プログラマーは共有保護モードを設定できます。それも必要で、CreateFileによって行われました...

したがって、「新しい」stl は、必要なすべての機能を提供してくれます。ドキュメントのほんの少しの欠陥。

于 2012-07-12T18:30:50.097 に答える