sh_none не является членом 'std :: basic_filebuf <_Elem, _Traits>' - PullRequest
1 голос
/ 14 декабря 2010

Я пытаюсь использовать специфическую для Microsoft filebuf :: sh_none переменную, чтобы открыть fstream в эксклюзивном режиме (еще одна специфическая функция Microsoft).Я получаю вышеуказанную ошибку.Я импортирую <fstream>.Как я могу исправить эту ошибку?

ОБНОВЛЕНИЕ : Я нашел этот поток , где было предложено вместо этого попробовать _SH_DENYNO.Код компилируется, я сейчас его тестирую.Это не имеет никакого смысла для меня, так как это не задокументировано в функции.

1 Ответ

3 голосов
/ 14 декабря 2010

Какую версию Visual C ++ вы используете?

Документация по Visual C ++ 6, на которую вы ссылаетесь, является предстандартной версией iostreams, начиная с #include <fstream.h>. Он больше недоступен, и даже в Visual C ++ 6.0 был только для обратной совместимости.

Кроме того, _SH_DENYNO является противоположностью эксклюзивного режима. Вы хотите, чтобы _SH_DENYRW получил то же поведение, что и sh_none. Вот новая документация: http://msdn.microsoft.com/en-us/library/44cs32f9.aspx,, которая в конечном итоге направляет вас к http://msdn.microsoft.com/en-us/library/8f30b0db.aspx для получения подробной информации о третьем параметре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...