Если произошел сбой CStdioFile :: Open, я хочу сообщить о причине ошибки.
Однако создается впечатление, что оно никогда не вызывает исключение.Кроме того, когда я пытаюсь сделать следующее:
CStdioFile file;
CFileException exc;
bool bSuccess = (file.Open(_T("FileDNE"), _O_RDONLY, &exc) == TRUE);
ASSERT_FALSE(bSuccess);
CString err;
exc.GetErrorMessage(err.GetBufferSetLength(255), 255);
std::cout << CStringA(err);
утверждение срабатывает где-то внизу в exc.GetErrorMessage:
ASSERT(afxCurrentResourceHandle != NULL);
Я читал, что это происходит, когда я не используюблок try-catch.Но зачем использовать блок try-catch, когда Open не выдает никаких исключений?
Любые идеи о том, как сообщать об ошибках Open, будут полезны!