0

我目前正在使用 MSVS 2010 将代码从 stlport 5.1.3 移植到 stl。我遇到了一个问题,希望有人能帮助我。

代码中的某处是:

HANDLE lHandle = CreateFileW(...);

ifstream lStream( lHandle );

// more job here...

这是使用 stlport 构建的,因为 basic_ifstream 有一个 cTor,它采用 void*。但标准 stl 没有。我应该写这样的东西:

ifstream lStream( /*FileName*/ );

...但我的文件名是wchar_t *. ifstream cTor 只需要char *...

你知道解决方法吗?

提前致谢,

多米尼克

4

1 回答 1

0

好吧,似乎 MSVC2010 中包含的 stl 提供了我需要的所有东西,但它不在文档中。

使用 CreateFile 是因为以前的 std::fstream 无法处理宽字符文件名。现在,它有一个 cTor 和一个 open() 成员。

此外,新版本的 ifstream 允许程序员设置共享保护模式。我也需要它,它是由 CreateFile 完成的......

因此,“新” stl 给了我所需的所有力量。只是文档中的一个小缺陷。

于 2012-07-12T18:30:50.097 回答